我收到以下错误:
"当前背景下不存在财产".
我检查了StackOverflow的常见原因,但我没有提出任何错误.(至少没有一个我理解^^).我正在使用Microsoft Visual Studio 2015
这是我的代码:
namespace ConsoleApplication5
{
public class Voiture
{
public int Vitesse { get; set; }
public Voiture()
{
Vitesse = 5;
}
public string Marque
{
get
{
throw new System.NotImplementedException();
}
set
{
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在另一个文件中
namespace ConsoleApplication5
{
public class Audi : Voiture
{
public void Deraper()
{
Console.WriteLine("Vroooouum !!");
}
this.Marque = "Audi";
}
}
Run Code Online (Sandbox Code Playgroud)
如果不是this.Marque我使用Voiture.Marque,我会遇到同样的问题.如您所见,命名空间是可以的.怎么知道发生了什么?
1)不允许您访问和初始化方法体外部的继承属性.您只能在那里声明新的属性或字段.
2)Marque是类型int,你不能指定string它
3)你的setter Marque是空的,所以这将没有任何效果
解决方案:
1)将访问权移动this.Marque到构造函数或方法体中!
2)改变任一的类型Marque到string您分配给它一个或值int
3)添加一个额外的私有字段,并按以下方式重写setter(和getter):
private int marque;
public int Marque
{
get
{
return marque;
}
set
{
marque = value;
}
}
Run Code Online (Sandbox Code Playgroud)
有关如何使用属性的更多信息,您可以检查这些链接:
https://www.dotnetperls.com/property
编辑:
如果不是
this.Marque我使用Voiture.Marque,我会遇到同样的问题.
这是因为第一个问题仍然有效.如果你在方法体内执行此操作,则会遇到其他问题!因为Marque不是static,所以你不能通过使用类名调用它来使用它.您需要一个类型对象的实例Voiture
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |