加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 07:39:53 所属栏目:百科 来源:网络整理
导读:我是Extension Methods的新手,并探索他们可以做些什么. 是否可以在没有特定赋值的情况下为调用对象分配输出? 这是一个简单的例子来解释: public static string ExtensionTest(this string input){ return input + " Extended!";} 在以下示例中…… var foo
我是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"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读