gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:44:44 25 4
gpt4 key购买 nike

我是扩展方法的新手,正在探索它们的功能。

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

这里举个简单的例子来说明:

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# 扩展方法 - 返回调用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4805604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com