首页 新闻 赞助 找找看

.NET 关于扩展方法和扩展属性的疑惑,高手请进>>>

0
[已解决问题] 解决于 2011-12-22 15:24

扩展就是针对一个已有的类对它增加更多的属性或功能对吗?

但是为什么不能对string类增加一个color属性,以让它显示出不同的颜色?

如果可以,请问怎么扩展?

知道的朋友请耐心指点一下,拒绝贴广告和复制答案,谢谢!

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2011-12-12 11:17
< >
分享
最佳答案
1

“扩展就是针对一个已有的类对它增加更多的属性或功能对吗?”不对。(1)只有扩展方法,没有扩展属性(2)扩展方法并不是真的去修改那个类,只是语法糖。比如:

public static class StringExtensions
{
public static string DoSomething(this string s, int index)
{
//do something
//return blablabla..
}
}

//用法
string str = "test";
str.DoSomething(1); //表象
StringExtensions.DoSomething(str, 1); //本质
水牛刀刀 | 大侠五级 |园豆:6350 | 2011-12-12 11:46
其他回答(1)
0

方法一,static扩展

    public static class ExternString
{
public static void SetColor(this string param, int color)
{
Console.WriteLine(string.Format("{0} new color {1}", param, color));
}
}

方法二:

访问者模式,不过这针对自己定义类才可采用。

胡屯 | 园豆:714 (小虾三级) | 2011-12-12 12:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册