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; 

我有安装和吸气设置。

当您可能想要使用构造函数参数时,您尝试使用hourminute 字段 。 调用基类构造函数时,不能使用字段(或任何其他实例成员)。

我个人更改构造函数参数以获得更多的常规名称:

 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都不是合适的参数。 在参数中使用对象名称,而不是它们的类。