我有以下类,其中包含具有属性Radius的Parent类Shapes,并且我将此属性访问到其子类(HeaxGon),但它在子类中给出了错误(get或set accessor expected)
请指教。 类形状 { int _radius;
public int Radius
{
get { return _radius; }
set { _radius = value; }
}
}
class HeaxGon:Shapes
{
int points;
public void SetRadius
{
**Radius=20;**
}
}
答案 0 :(得分:3)
我猜你正在尝试创建一个名为SetRadius
的函数,在这种情况下,它应该是这样的:
public void SetRadius(int radius)
{
this.Radius = radius;
}
或者,如果你真的想在所有情况下将其设置为20
:
public void SetRadius()
{
this.Radius = 20;
}
答案 1 :(得分:1)
使_radius
受到保护,然后只需在子类中调用this.Radius
即可。所以:
public class Shape
{
protected int _radius;
public int Radius
{
get { return _radius; }
set { _radius = value; }
}
}
public class Hexagon : Shape
{
int _points;
public void SetRadius(int radius)
{
this.Radius = radius;
}
}
答案 2 :(得分:1)
你写得很糟糕,它应该是这样的:
class Shapes
{
int _radius;
public int Radius
{
get { return _radius; }
set { _radius = value; }
}
}
class HeaxGon:Shapes
{
int points;
public void SetRadius()
{
Radius=20;
}
}
没有必要像其他人所说的那样称呼“这个”。
或者只使用您已在基类中公开的属性
HeaxGon hg = new HeaxGon();
hg.Radius = 20;
这将调用您在基类(形状)中指定的setter。