在C#中,如果要扩展使用String类,可创建String的派生类吗?
1个回答
展开全部
如果所有的类都可以被继承,那么很容易导致继承的滥用,进而使类的层次结构体系变得十分复杂,这样使得开发人员对类的理解和使用变得十分困难,因此C#中提出了密封类的概念。
而String是密封类,不可以被继承(目的右键点击String查看定义可以发现被修饰为sealed)
虽然密封类不可以继承,我们继承的目的往往是为了扩展功能,因此,我们可以弯道超车。将你自己的代码封装在静态扩展类中,定义如下:
public static class MyExtString
{
public static [返回类型] [我的函数名](this string [thisInstance],[参数1,参数2。。])
{
//处理代码
return [结果]
}
}
其中方括号中可替换,this string thisInstance 定义当前实例,如此,调用时可以像封装在String中的函数一样调用,比如自定义函数名为SplitFilename(将字符串拆分并取出文件名):
string str;
str=str.SplitFilename();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询