2011-09-11 20 views
-3

我已經檢查了類似題目的結果,但它們都是針對的.net 3.5我的目標是4.0和我得到必須聲明主體,因爲它不標記爲抽象,EXTERN或部分.NET屬性生成「必須聲明一個body,因爲它沒有標記爲抽象或extern」

爲什麼會出現這個錯誤,我怎麼能阻止它沒有使我prope抽象,EXTERN或部分?非常感謝你

 public static SRDataContext DC 
    { 
     get 
     { 
      if (DC == null) 
      { 
       DC = new SRDataContext(); 
      } 
      return DC; 
     } 
     private set 
     { 
      DC = value; 
     } 
    } 
+0

這是錯誤列表給我的行,intellisense突出顯示了設置關鍵字 – gh9

+0

您正在編寫的代碼應該編譯。雖然它不起作用,但你需要有一個後臺來做到這一點。 – svick

+1

類似於您提到的錯誤,也可能由未使用大括號正確關閉的代碼的較早部分引起。你顯示的代碼將被編譯,而不是錯誤的(真正)原因。 (注意:我希望這不是你真正的代碼,因爲你在gettor中獲取屬性本身會引起永恆的遞歸) – Abel

回答

1
private static SRDataContext dc; 

public static SRDataContext DC 
{ 
    get 
    { 
     if (dc == null) 
     { 
      dc = new SRDataContext(); 
     } 
     return dc; 
    } 
    private set 
    { 
     dc = value; 
    } 
} 

你需要的屬性支持字段(其中數據可以保存一個字段)。在C#中有自動屬性,但它們不能有一個主體。它們的後臺字段是由C#編譯器「背後」創建的。舉例來說:

public static SRDataContext DC { get; private set; } 

但它會和你正在嘗試做的不同。

+0

感謝您的幫助! – gh9

+0

儘管這是代碼中的錯誤,但我認爲不應該導致任何編譯時錯誤。 – svick

+0

@svick你說得對。它編譯完美:-)(但最好不要運行它)...如果他有其他問題,他會再次要求幫助:-) – xanatos

相關問題