2011-01-27 58 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不正確的參數。在參數中使用對象名稱,而不是它們的類。

相關問題