【发布时间】:2017-05-10 23:41:39
【问题描述】:
我不明白它是如何完美编译和工作的:|
什么时候可以在覆盖时更改属性的类型(从Nullable<bool> 到bool 以及从int 到Nullable<int>)?
public class Program
{
public static void Main(string[] args)
{
var testBase = new BaseClass();
var testDerived = new DerivedClass();
Console.WriteLine("'" + Convert.ToString(testBase.BaseInt) + "'");
Console.WriteLine("'" + Convert.ToString(testDerived.BaseInt) + "'");
Console.WriteLine("'" + Convert.ToString(testBase.BaseBoolNullable) + "'");
Console.WriteLine("'" + Convert.ToString(testDerived.BaseBoolNullable) + "'");
}
}
public class BaseClass
{
public bool? BaseBoolNullable { get; set; }
public int BaseInt { get; set; }
}
public class DerivedClass : BaseClass
{
public new bool BaseBoolNullable { get; set; }
public new int? BaseInt { get; set; }
}
输出:
'0'
''
''
'False'
【问题讨论】:
标签: c# .net polymorphism