关于扩展方法:将新属性添加到字符串类C#

Add new property to string class C#

本问题已经有最佳答案,请猛点这里访问。

我想知道是否可以将新属性作为扩展属性添加到String类中。我要找的是这样的东西

1
string.Empty

我想延期,例如:

1
string.DisplayNone;

我可以向string c类添加扩展属性吗?我可以像执行string.empty一样调用它。


只能为对象生成扩展…

像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Program
{
    static void Main(string[] args)
    {
        string x ="Hello World";
        x.DisplayNow();
    }
}

public static class StringExtension
{
    public static void DisplayNow(this string source)
    {
        Console.WriteLine(source);
    }
}

但我从未见过如何扩展一个结构或一个从未初始化的类。


是的,你能做到……但是,它将是扩展方法,而不是属性。

1
2
3
4
5
6
7
public static class Extensions
{
    public static string DisplayNone(this string instance)
    {
        return"blah";
    }
}

因为它需要创建一个字符串的实例,所以需要将其作为"".DisplayNone();使用(不管有多黑客)。

如果你想,另一个稍微不那么简单的方法是创建一个助手类。

1
2
3
4
5
6
7
public static StringHelper
{
    public static string DisplayNone()
    {
        return"blah";
    }
}


您可能能够创建自己的值类型。它使用"displayname"方法模拟类型字符串。

但是,我不明白为什么您需要在类型上使用"displayname"?在刺伤的情况下,这更有意义。即"你好"。显示名称。见Smokefoot对这个问题的回答。