2016-07-24 53 views
-2

您好我試着寫一些代碼,會在C#中設置一個倒數計時器,但我得到一個編譯錯誤GET或set訪問預計如何解決「GET或set訪問預期」編譯錯誤

環顧四周,似乎我在某處丟失了一些(),但我並不確定問題出在哪裏。

下面是我遇到的代碼,任何幫助或建議,將不勝感激。

public static class TimeController { 
    static DateTime TimeStarted; 
    static DateTime TotalTime; 

    public static void StartCountDown(TimeSpan totalTime) 
    { 
     TimeStarted = DateTime.UtcNow; 
     TotalTime = totalTime; 
    } 

    public static TimeLeft 

     get 
     { 
     var result = DateTime.UtcNow - TimeStarted; //THIS IS THE LINE THAT HAS THR ERROR 
      if (result.TotalSeconds <= 0) 
       return TimeSpan.Zero; 
      return result; 
     } 
    } 
+6

''公共靜態TimeLeft'和'get'之間缺少'{'。 –

+0

根據規則,這是不重複的:「這個問題是由一個不能再生的問題引起的,或者是一個簡單的印刷錯誤**。雖然類似的問題可能在這裏討論,但這個問題已經以某種方式解決了不太可能幫助未來的讀者**這通常可以通過識別並仔細檢查在發佈之前重現問題所需的最短程序來避免** –

+1

它缺少返回類型('TimeSpan')和'{' –

回答

0

嗯,首先,你要設置TotalTime,這是一個DateTime,一個類型的TimeSpan,所以你需要改變TotalTime的類型到的TimeSpan。接下來,TimeLeft的類型永遠不會被聲明;因此在staticTimeLeft之間,您應該將TimeSpan定義爲其類型。此外,你需要圍繞get訪問器放置括號。總而言之,你的代碼應該看起來像這樣,從我可以告訴:

public static class TimeController { static DateTime TimeStarted; static TimeSpan TotalTime; 

    public static void StartCountDown(TimeSpan totalTime) 
    { 
     TimeStarted = DateTime.UtcNow; 
     TotalTime = totalTime; 
    } 

    public static TimeSpan TimeLeft 
    { 
     get 
     { 
      var result = DateTime.UtcNow - TimeStarted; 
      if (result.TotalSeconds <= 0) 
       return TimeSpan.Zero; 
      return result; 
     } 
    } 
}