2011-09-07 29 views
0

我想從類中調用一個靜態函數,但intellisense沒有選擇它?試圖在一個類中調用靜態函數

函數返回

public static ArrayList GetInfo(int infoID) 

,我從別的地方在另一類叫,我試圖做類似

var myitem = myClassName.GetInfo(x); 

但智能感知犯規把它撿起來......我鍵入myClassName。

我怎麼稱呼它?如果可能的話

PS:我不能改變的方法:(簽名

+0

這是否發生在Visual Studio的每個單一版本中?我認爲是因爲你沒有說你正在使用哪個版本。 –

+0

你能否在你的問題中增加一些代碼?上下文在這裏可能很重要.. –

+3

確保您的課程是公開的或者您嘗試使用的地方是否可訪問。 –

回答

1

通常你有一個namespace爲好,加上靜態方法必須是它自己的類中,例如,像這樣:

namespace MyHelpers { 

    public static class ArrayHelpers { 

     public static ArrayList GetInfo(int infoID) { ... } 
    } 
} 

現在,無論你在哪裏,在你的應用程序,如果該庫是參照當前項目只需調用它

ArrayList myitem = MyHelpers.ArrayHelpers.GetInfo(x); 

記住,你需要給的完整路徑的d。如果您的命名空間被稱爲namespace Model.Helpers { ...

那麼完整的路徑將是:

ArrayList myitem = Model.Helpers.ArrayHelpers.GetInfo(x); 

是您正在使用的using聲明

using Model.Helpers; 

可以使用

ArrayList myitem = ArrayHelpers.GetInfo(x); 
+0

這個工作謝謝 – user710502

1

靜態函數不能用變量名來訪問,但與類名所以basicly就叫要麼只是GetInfo(int)(如果你想。在GetInfo()所在的類中)或YourClass.GetInfo(int)(GetInfo()所在的類之外)

如果要在類外部調用,請確保在兩者中使用相同的名稱空間,或您正在使用適當的using陳述。

+0

'myClassName'看起來像一個類名。如果它是一個實例,那麼代碼將不會編譯。 –

+0

@大衛哦..我以某種方式認爲它是可變的,因爲它以小寫字符開頭:| – flai

+0

對不起myClassName是類名 – user710502

1

您是否在您的項目的子文件夾中創建了課程?如果是這樣,你需要調用它像這樣:

subfolder.myclassname.getinfo() 
相關問題