为c#字符串类添加新属性

本文关键字:属性 新属性 添加 字符串 | 更新日期: 2023-09-27 18:03:09

我想知道是否有可能添加一个新的属性作为扩展属性到字符串类。我要找的是这样的东西

string.Empty

我想做一个扩展,例如:

string.DisplayNone;

我可以添加扩展属性到字符串c#类,我可以调用类似的方式,当我做string. empty ?

为c#字符串类添加新属性

您只能为对象构建扩展…

像这样:

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);
    }
}

但是我从来没有见过你如何扩展一个从未初始化的结构或类

是的,你可以这样做…但是,它将是一个扩展方法,而不是一个属性。

public static class Extensions
{
    public static string DisplayNone(this string instance)
    {
        return "blah";
    }
}

需要作为"".DisplayNone();使用(无论多么简陋),因为它需要创建字符串的实例。

如果你想的话,另一个稍微不那么粗糙的方法是创建一个helper类。

public static StringHelper
{
    public static string DisplayNone()
    {
        return "blah";
    }
}

您可以创建自己的值类型。用"DisplayName"方法模拟String类型

然而,我不明白为什么你需要"DisplayName"的类型?它在sting实例上更有意义。即。"你好".DisplayName。