是否可以在没有特定赋值的情况下为调用对象分配输出?
这是一个简单的例子来解释:
public static string ExtensionTest(this string input){ return input + " Extended!";}
在以下示例中……
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()
解决方法 不,但不起作用的原因与字符串的不变性有关,而与扩展方法无关.如果你有一个班级:
public class SomeClass{ public int Value {get; set;}}
并且扩展方法:
public static voID DoIt(this SomeClass someClass){ someClass.Value++;}
会产生以下影响:
var someClass = new SomeClass{ Value = 1 };someClass.DoIt();Console.Writeline(someClass.Value); //prints "2"总结
以上是内存溢出为你收集整理的C#扩展方法 – 返回调用对象全部内容,希望文章能够帮你解决C#扩展方法 – 返回调用对象所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)