2008-09-25 86 views

回答

62

這很簡單。關鍵字'this'返回對包含它的類的當前實例的引用。靜態方法(或任何靜態成員)不屬於特定實例。它們存在而不創建類的一個實例。什麼是靜態成員,以及爲什麼/何時在MSDN文檔中使用它們,還有更多in depth explanation

5

靜態方法是特定於類而不是實例特定的。 「this」表示運行時類的一個實例,所以它不能在靜態上下文中使用,因爲它不會引用任何實例。 應該使用類的名稱,並且只能訪問類中的靜態成員

1

這代表當前實例對象,並且沒有靜態方法的實例。

8

作爲附加說明,您可以從Static方法訪問該類的靜態成員。使下面的例子有效,有時非常有用。

public static void StaticMethod(Object o) 
{ 
    MyClass.StaticProperty = o; 
} 
1

靜態方法中沒有this對象引用。

1

如果您想在靜態函數中使用類的非靜態函數。請在靜態函數中創建類的對象。 例如

Class ClsProgram(){ 
public static void staticfunc(){ 
ClsProgram Obj = new ClsPrograM() 
Obj.NonStaticFunc(); 
} 
public void NonStaticFunc(){} 
} 
0

對於OP的問題,請參閱接受的答案。這個答案適用於那些正在尋找一個快速的班輪在靜態方法中使用的人。

如果類是一個表單,並且它是開放的(您也需要表單的名稱),那麼可以在靜態方法中調用它;

Application.OpenForms["MainForm"]; 
相關問題