我正在尝试为我的用户提供两个类 - 一个是只读的,一个是可写的.r/o只有getter,而writable将从它继承并添加setter.
我的印象是C#应该能够处理它,但编译器不同意.为什么这不起作用?任何解决方法?
class A
{
protected int m_val;
public int Val
{
get { return m_val; }
}
}
class B : A
{
public int Val
{
set { m_val = value; }
}
}
class Test
{
static void Main(string[] args)
{
B b = new B();
b.Val++; // <-- WHY DOESN'T THIS WORK?!
}
}
Run Code Online (Sandbox Code Playgroud)
PS上面示例中的受保护变量是人为的.我的类实际上包装了一些本机资源,并且获取/设置发生在const或可变本机指针上.
Mar*_*ell 13
partial适用于单一类型 - 不是2种类型(A和B).你需要更像下面的东西,理想的是保持领域私密:
class A
{
private int m_val;
public int Val
{
get { return m_val; }
protected set { m_val = value; }
}
}
class B : A
{
public new int Val
{
get { return base.Val;}
set { base.Val = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
758 次 |
| 最近记录: |