2011-01-27 128 views
5

有同样的问题,我是上周只有从父类inheiriting: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; 

,我有getter和setter方法设置。

回答

17

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

个人而言,我会改变构造函数的参数有更多的传统名称:

public ExtendedTime(int hour, int minute, String timeZone) : base(hour, minute) 
{  
    this.timeZone = timeZone; 
} 

请注意,如果你做了场私人的而不是内部,这个问题会更明显,因为你止跌“T可以访问域摆在首位:)

+0

谢谢。我已经看到了这个项目的解决方案,我发誓假定它对父类是大小写敏感的。^_^ – 2011-01-27 15:05:28

1

你不通过你的论点:

Hour != hour 
Minute != minute 

将其更改为

public ExtendedTime(int hour, int minute, string timeZone) : base(hour, minute) 
0

我想你可能会具有一个外套问题(C#是区分大小写),试试这个:

public ExtendedTime(int hour, int minute, String TimeZone) :base(hour, minute) 
0

显然,int Hour, int Minute, String TimeZone不正确的参数。在参数中使用对象名称,而不是它们的类。

相关问题