gpt4 book ai didi

c# - 在 C# 中访问重写的公共(public)属性

转载 作者:太空宇宙 更新时间:2023-11-03 19:36:50 25 4
gpt4 key购买 nike

这是场景:

class BaseClass
{
public virtual string Prop {get; set;}
}

class ChildClass : BaseClass
{
public override string Prop {get; set;}
}

//program
...
ChildClass instance = new ChildClass;
Console.WriteLine(instance.Prop); //accessing ChildClass.Prop
...

问题是如何在 ChildClass 的实例中访问 BaseClass.Prop?类型转换会成功吗?

Console.WriteLine((instance as BaseClass).Prop); //accessing BaseClass.Prop

-编辑-很多人建议类型转换。在 C++ 中,它不起作用,因为多态性仍会确保调用子属性。在 C# 中不就是这样吗?

在 C++ 中,您可以通过以下方式解决问题:

instance.(BaseClass::get_Prop())

最佳答案

将子类的实例转换为基类的实例;是。使用:

((BaseClass)childClassInstance).Prop

关于c# - 在 C# 中访问重写的公共(public)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1014094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com