MKR*_*MKR -1 c# inheritance type-conversion
如何将派生类对象的实例转换为基类对象?
class BaseClass
{
public int MyProperty1 { get; set; }
}
class DerrivedClass : BaseClass
{
public int MyProperty2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我有 objDerivedClass 具有 2 个属性(MyProperty1、MyProperty2),如何将其转换为 objBaseClass,以获得基类对象的实例?
你实际上不能这样做,而且一般来说,这违背了继承类的观点 - 它们具有基类的公共和受保护的属性和方法,以及您添加的用于扩展基类功能的所有内容。将派生类强制转换为其基类只会丢弃您费尽心思添加的所有额外优点。
如果您要问的是如何将 BaseClass 和 DerivedClass 接受到任何方法或属性中,则可以只要求 BaseClass - 任何接受 BaseClass 的东西也将接受 DerivedClass,因为 DerivedClass 被视为 BaseClass 的实例。