下面的函式可以在一個名為page.cs的類中找到
。
public static List< string> MyFunction()
{
var retList = new List<string>()。
retList.Add("xzy")。
retList.Add("abc")。
return retList;
}
在頁面加載時,如何呼叫該函式并檢查串列中是否包含 xzy和abc?
protected void Page_Load(object sender, EventArgs e)。
{
//call MyFunction()。
}
uj5u.com熱心網友回復:
你并沒有真正展示足夠的代碼讓我們看到你的問題。 根據我的理解,你在一個名為page.cs的檔案中擁有一個Page類,它的部分內容看起來是這樣的:
public class Page {
public static List< string> MyFunction()
{
var retList = new List<string>
{
"xyz"。
"abc"。
};
return retList;
}
protected void Page_Load(>object sender, EventArgs e)。
{
var list = MyFunction()。
}
}
(注意,我已經簡化了你對串列的初始化--我的代碼與你的等同)
我展示的代碼可以編譯。 假設MyFunction和Page_Load在同一個類中,那么你可以直接從Page_Load中呼叫MyFunction(靜態函式可以從實體函式(在同一個類中)呼叫)。
如果它們不在同一個類中,假設MyFunction是另一個類(比如OtherClass)中的一個靜態函式。 然后Page_Load可以按照@joelcoehoorn描述的方式來呼叫它:
OtherClass.MyFunction()。
反之,則不正確。 一個靜態函式不能直接呼叫同一個類中的實體函式(沒有static關鍵字的函式)。 你會得到一個錯誤,抱怨說你需要一個實體。 例如,如果MyFunction想要呼叫Page_Load,它將需要做如下的事情:
var page = new Page()。
//可能對page做一些處理。
page.PageLoad(new object(), EventArgs.Empty)。
//possibly do more stuff with page[/span
如果這還不能回答你的問題,你需要對你的問題進行補充。 特別是:
- 顯示類的宣告。
- 顯示你方法定義周圍的類宣告。 哪些類有哪些方法并不清楚(但這很重要)
- 向我們展示你的代碼。
- 顯示你的代碼和你得到的任何錯誤資訊(編譯時和運行時)
另外請注意,如果你按照@joelcoehoorn描述的那樣做,我相信你不應該得到不可撤銷的成員'page'不能像方法一樣使用。。
uj5u.com熱心網友回復:
你必須使用型別名來參考函式。然而,一個名為page.cs的檔案很可能有一個名為Page的類,這將與基礎ASP.Net Page類相沖突。因此,你必須完全限定該名稱(MyNamespace.Page.MyFunction())或改變該類的名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/322499.html
標籤:
