相关疑难解决方法(0)

为什么不能覆盖仅限getter的属性并添加setter?

为什么不允许使用以下C#代码:

public abstract class BaseClass
{
    public abstract int Bar { get;}
}

public class ConcreteClass : BaseClass
{
    public override int Bar
    {
        get { return 0; }
        set {}
    }
}
Run Code Online (Sandbox Code Playgroud)

CS0546'ConcreteClass.Bar.set':无法覆盖,因为'BaseClass.Bar'没有可覆盖的set访问器

.net c# properties getter-setter

139
推荐指数
5
解决办法
5万
查看次数

具有公共getter的抽象属性,可以在具体类中定义私有setter吗?

我正在尝试创建一个使用getter定义属性的抽象类.我想将它留给派生类来决定是否要为属性实现setter.这可能吗?

到目前为止我所拥有的:

public abstract class AbstractClass {
    public abstract string Value { get; }
    public void DoSomething() {
        Console.WriteLine(Value);
    }
}

public class ConcreteClass1 : AbstractClass {
    public override string Value { get; set; }
}

public class ConcreteClass2 : AbstractClass {
    private string _value;
    public override string Value {
        get { return _value; }
    }
    public string Value {
        set { _value = value; }
    }
}

public class ConcreteClass3 : AbstractClass {
    private string _value;
    public override string …
Run Code Online (Sandbox Code Playgroud)

c# getter setter abstract-class properties

46
推荐指数
2
解决办法
6万
查看次数

标签 统计

c# ×2

properties ×2

.net ×1

abstract-class ×1

getter ×1

getter-setter ×1

setter ×1