如何使用抽象类';的属性
本文关键字:属性 何使用 抽象类 | 更新日期: 2023-09-27 18:30:03
属性位于抽象类内部,然后从main调用。目标是打印"Bip-Bip Digital",但它只打印"Bip Bip"。我甚至尝试用构造函数设置_phoneType变量,但它也不起作用。
using System;
abstract class Telephone
{
protected string _phoneType;
public string PhoneType {
set
{
_phoneType = PhoneType;
}
get
{
return _phoneType;
}
}
public abstract void Ring();
}
class DigitalPhone : Telephone
{
public override void Ring()
{
Console.WriteLine("Bip bip {0}", _phoneType);
}
}
class Program
{
static void Main()
{
DigitalPhone myDPhone = new DigitalPhone();
myDPhone.PhoneType = "Digital";
myDPhone.Ring();
}
}
您的PhoneType
设置器当前仅将_phoneType
设置为其当前值,该值最初为null。您应该将其更改为:
set
{
_phoneType = value;
}
或者简单地使用自动属性:
public string PhoneType { get; set; }
setter有问题,它没有将传入的值设置为_phoneType。容易犯错误。应该是…
set
{
_phoneType = value;
}
否则,代码对我来说都很好。