2012-01-20 22 views
8

我在類中創建了一個函數。我想在整個項目中調用它。但我不想在每個頁面中創建該類的對象。是否有該類的全球聲明,以便我們可以在每個頁面中調用?在aspx頁面.cs文件的後面代碼中,繼承是不可能的。調用函數從類文件中不創建該類的對象

回答

13

你需要在你的類來創建一個Static方法,這樣就可以調用的函數,而無需創建該類的對象如以下的片段:

public class myclass 
{ 
public static returntype methodname() 
{ 
    //your code 
} 
} 

調用的函數只是用

//ClassName.MethodName(); 
myclass.methodname(); 

你可以在MSDN已經看清楚:Static Members

建議

還有一個解決您的問題是利用SINGLETON DESIGN PATTERN

意向

  1. 確保只創建一個類的實例。
  2. 提供對象的全局訪問點。

UML diagram

+0

我有興趣瞭解這個單你solution.could請提供更好的理解,任何一個環節或一個例子 – Shrivallabh

4

你只需要使它成爲一個靜態方法:

public class Foo 
{ 
    public static void Bar() 
    { 
     ... 
    } 
} 

然後從任何地方:

​​

需要注意的是,因爲你沒有調用該方法的類的實例,有將不會是任何特定於實例的狀態 - 您將有權訪問任何變量的靜態變量,但不會訪問任何實例變量。

如果你需要需要特定於實例的狀態,你需要有一個實例 - 獲取適當實例的最好方法將取決於你想實現的目標。如果你能給我們提供更多有關班級和方法的信息,我們可能會幫助你更多。我記得,ASP.NET中的依賴注入(MVC之前)有點痛苦,但是你可能很想研究一下 - 如果方法改變任何靜態,你會結束在線程方面難以測試和難以推理。