相关疑难解决方法(0)

如何使用C#中的setter覆盖getter-only属性?

更新: 此问题已经过修改,以使其更加清晰.下面的答案似乎反映出这种方法效果很好.希望这个问题可以帮助那些需要添加get或者添加set现有财产的人.


今天遇到一个问题,我需要get用a get和覆盖基类的-only属性set.目前的共识似乎是这是不可能的,但我认为我找到了一种方法.

一般的想法是创建一个new属性而不是直接override使用旧属性,然后我们通过调用新方法创建一个overrideget方法的桥接方法.

情况

这是一些无法修改的任意预先存在的类型结构的代码.

public abstract class A
{
    public abstract int X { get; }
}
public class B : A
{
    public override int X { get { return 0; } }
}
Run Code Online (Sandbox Code Playgroud)

问题

我们想编写这段代码,但不会编译.

public class C : B    // won't compile: X can't have a 'set' method
{
    private int _x;
    public override int X …
Run Code Online (Sandbox Code Playgroud)

c# getter setter overriding readonly

7
推荐指数
1
解决办法
5089
查看次数

标签 统计

c# ×1

getter ×1

overriding ×1

readonly ×1

setter ×1