关于c#:无法使用抽象get定义集合


Unable to define a set with abstract get

本问题已经有最佳答案,请猛点这里访问。

继承的访问器有问题,无法定义set方法。

我的代码:

1
2
3
4
public abstract class MotherOfDragons
{
    public abstract String DragonsName { get; }
}

继承的类:

1
2
3
4
5
6
7
8
9
public class Drogon : MotherOfDragons
{
    public override String DragonsName { get; set; }
}

public class Viserion : MotherOfDragons
{
    public override String DragonsName { get; }
}

它对Viserion起作用,但Drogon我有错误CS0546

'accessor' : cannot override because 'property' does not have an overridable set accessor

在类MotherOfDragons中不添加set访问器就可以解决这个错误吗?我想将此字段保持为只读,只针对一个案例。

谢谢你


谢谢你@sircodesalot

我终于做到了:

1
2
3
4
5
6
7
8
9
10
public class Drogon : MotherOfDragons
{
    private String dragonsName;
    public override String DragonsName { get { return dragonsName; } }

    public void Change_DragonsName(String name)
    {
        dragonsName = name;
    }
}

它工作,不像一个set,但它工作。