C#“非静态字段,方法或属性需要对象引用”
我遇到了同样的问题,上周我只是从父类来看:
public ExtendedTime(int Hour, int Minute, String TimeZone) :base(hour, minute) { timeZone = TimeZone; }//end of ExtendedTime
:base(hour,minute)
是我有这个错误的地方。 小时和分钟都表示同样的问题。 现在通常我会说,我失去了一些东西,但我尝试过,但它没有做任何好的遗憾。
在父类中,小时和分钟声明如下:
internal int hour; internal int minute;
我有安装和吸气设置。
当您可能想要使用构造函数参数时,您尝试使用hour
和minute
字段 。 调用基类构造函数时,不能使用字段(或任何其他实例成员)。
我个人更改构造函数参数以获得更多的常规名称:
public ExtendedTime(int hour, int minute, String timeZone) : base(hour, minute) { this.timeZone = timeZone; }
请注意,如果您将字段设为私有而非内部,则问题会更明显,因为您无法访问第一个字段:)
你没有传递你的论点:
Hour != hour Minute != minute
将其更改为
public ExtendedTime(int hour, int minute, string timeZone) : base(hour, minute)
我认为你可能遇到了套管问题(c#区分大小写),试试这个:
public ExtendedTime(int hour, int minute, String TimeZone) :base(hour, minute)
显然, int Hour, int Minute, String TimeZone
都不是合适的参数。 在参数中使用对象名称,而不是它们的类。