VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 755|回复: 6

这种写法是什么意思呀?

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-22 11:00:01 | 显示全部楼层 |阅读模式
public new string AddElementName
{
    get
    {
        return base.AddElementName;
    }
    set
    {
        base.AddElementName = value;
    }
}
“public new string”这里的那个new是什么意思呀,为什么要加这个new呢?加与不加有什么区别呀?
回复

使用道具 举报

0

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-6-29 11:15:01 | 显示全部楼层
编译不过
c:\inetpub\wwwroot\WebApplication1\WebForm1.aspx.cs(49): 成员“WebApplication1.WebForm1.AddElementName”未隐藏继承成员。不需要关键字 new。
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-6-29 22:30:01 | 显示全部楼层
哦。我是在一个继承于ConfigurationElementCollection的类中看到的代码。不知道那个new是什么意思。
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-6-30 16:15:01 | 显示全部楼层
显式隐藏从基类继承的成员...

也就是隐藏从基类继承的AddElementName..
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-6-30 17:30:01 | 显示全部楼层
在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。隐藏继承的成员意味着该成员的派生版本将替换基类版本。在不使用 new 修饰符的情况下隐藏成员是允许的,但会生成警告。使用 new 显式隐藏成员会取消此警告,并记录代之以派生版本这一事实。

若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并使用 new 修饰符修饰该成员。
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-6-30 19:00:01 | 显示全部楼层
new,是用来改变一个方法或是一个属性,在其基类中所实现的行为的。

具体在楼主的程序片段中:
public new string AddElementName

AddElementName,是当前派生类的一个 返回string类型的 属性
这个属性是继承而来的,如果不想这个属性如其在基类中所定义
的那样实现,可以覆写这个属性:public string AddElementName
注意,上面是没有加new的,这样写没有问题,但是编译器会发出
警告(它担心你不小心覆写了基类的AddElementName属性),为了
不让编译器发出警告(也表明你的确是想覆写这个属性),你可以
加上new,就像这样:public new string AddElementName
如此,编译器就知道,你很清楚,是在覆写该属性,也就不会报警了。

在楼主的代码片段中:
public new string AddElementName
{
    get
    {
        return base.AddElementName;
    }
    set
    {
        base.AddElementName = value;
    }
}

该派生类明确覆写了基类的AddElementName属性,但从其实现来看,
却是直接调用的基类AddElementName属性实现,感觉是无病呻吟一般,
更贴切的比喻是:脱被子放屁-->多此一举

以上,谨代表我个人观点,不知道说得对不对,接着听楼下的讲课了。
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-7-3 12:15:01 | 显示全部楼层
非常感谢以上各位朋友的热心解答。我明白了,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表