C#扩展方法 – 返回调用对象

前端之家收集整理的这篇文章主要介绍了C#扩展方法 – 返回调用对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是Extension Methods的新手,并探索他们可以做些什么.

是否可以在没有特定赋值的情况下为调用对象分配输出

这是一个简单的例子来解释:

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#相关文章