我想我可能有C#繼承問題。c#繼承問題。我看不到我的繼承鏈中的方法
運行時,下面的代碼會生成一個「發生類型'System.NullReferenceException'的異常'錯誤消息。
在Visual Studio中進行調試時,我發現變量「path」在我的「Finder」類中始終爲空。
它似乎甚至沒有得到「WebConnector」類中的「GetUrl」方法,這可能解釋了我得到的空錯誤消息,但我不確定它爲什麼無法獲得該方法擺在首位。
我繼承基類錯了嗎?
謝謝!
WebConnector.cs:
public class WebConnector
{
public String GetUrl(string Id, String baseUrl)
{
string right = String.Format("/a('{0}')/b", Id);
return baseUrl + right;
}
baseClass.cs:
public class BaseClass
{
public WebConnector Connector { get; set; }
}
Finder.cs:
public class Finder : BaseClass
{
public String GetBuild()
{
var path = Connector.GetUrl(Id, baseUrl); //always null??
}
}
在哪裏或你如何設置'Connector'? –
'Finder.Connector'永遠不會被實例化,所以你不能調用'GetUrl'。如果'GetUrl'是靜態的,那麼你可以,因爲它不需要'Connector'的實例。 – sab669