我想知道是否可以将新属性添加为字符串类的扩展属性。我正在寻找的是这样的
string.Empty
我想进行扩展,例如:
string.DisplayNone;
我是否可以将扩展属性添加到字符串C#类中,我可以像处理string.Empty时那样调用它?
答案 0 :(得分:4)
是的,你可以这样做..但是它将是一种扩展方法,而不是属性。
public static class Extensions
{
public static string DisplayNone(this string instance)
{
return "blah";
}
}
需要使用({hacky)作为"".DisplayNone();
,因为它需要创建一个字符串实例。
如果您愿意,另一种稍微不那么粗暴的方法就是创建一个帮助类..
public static StringHelper
{
public static string DisplayNone()
{
return "blah";
}
}
答案 1 :(得分:4)
您只能为对象构建扩展程序......
类似的东西:
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);
}
}
但是我从未见过如何扩展一个从未初始化过的结构或类。
答案 2 :(得分:0)
您可以创建自己的值类型。用“DisplayName”方法模仿String类型。
但是,我不明白为什么你需要“DisplayName”这个类型?它对sting实例更有意义。即“你好” .DisplayName。请参阅Smokefoot对此问题的回答。