我有一个带有字段的基类:
class Base
{
public int A;
public int ShowA()
{
Console.WriteLine(A);
}
}
我有一个派生类:
class Derived : Base
{
public Derived()
{
A = 5;
}
}
我使用GUI编辑器显示类的所有字段。因为Derived
在其构造函数中设置A
,所以我不希望它在编辑器中显示。编辑器不会将[HideInInspector()]
属性设为字段
如何Derived
将A
属性设为[HideInInspector()]
属性Base
?
我无法使用关键字new
,因为我希望Base
仍然在其函数中使用与Derived
相同的字段(例如(new Derived()).ShowA()
将打印5
)
编辑:它看起来具有属性的技巧,而new
将无效,因为GUI编辑器将字段处理new
两次(一次用于基础,一次用于派生)。
答案 0 :(得分:3)
试试这个
class Base
{
public virtual int A {get; set;}
public int ShowA()
{
Console.WriteLine(A);
}
}
class Derived : Base
{
public Derived()
{
A = 5;
}
[HideInInspector()]
public override int A
{
get { return base.A;}
set { base.A = value}
}
}