在C#中,如果要扩展使用String类,可创建String的派生类吗?

 我来答
CodeBlove
2020-12-16 · TA获得超过3364个赞
知道小有建树答主
回答量:936
采纳率:79%
帮助的人:247万
展开全部

如果所有的类都可以被继承,那么很容易导致继承的滥用,进而使类的层次结构体系变得十分复杂,这样使得开发人员对类的理解和使用变得十分困难,因此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();

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式