我刚接触扩展方法并探索它们的功能。
在不进行特定赋值的情况下,是否可能将调用对象分配给输出?
这里有一个简单的例子来解释:
public static string ExtensionTest(this string input)
{
return input + " Extended!";
}
In the following examples ...
var foo = "Hello World!";
var foo2 = foo.ExtensionTest(); // foo2 = "Hello World! Extended!"
foo.ExtensionTest(); // foo = "Hello World!"
foo = foo.ExtensionTest(); // foo = "Hello World! Extended!"
有没有办法让foo.ExtensionTest()
返回"Hello World! Extended!"
,而不必明确指定foo = foo.ExtensionTest()
?
this ref
修饰符,用于静态方法,调用站点看起来像foo.Extension();
。不幸的是,目前该语言没有这个功能。也许可以向语言设计者推荐一些东西? :) 就我个人而言,我不想要它。 - Anistring bar = foo; foo.DoSomething(); Console.WriteLine(ReferenceEquals(bar, foo));
...(输出结果为False
,开发者:什么鬼?!) - Dan Tao