我有一個由許多不同的控件類型組成的應用程序,每個控件類型可以選擇性地與一個參數對象鏈接。返回空字符串而不是System.NullReferenceException錯誤
然後將這些保存在XML文件中以便稍後重新加載。要將控件鏈接到指定的參數,控件將存儲參數ID。然後在裝載和重新鏈接期間搜索這個文件。
但是,因爲這是可選的,如果沒有指定參數,當嘗試訪問可以理解的ID時會得到一個NullReferenceException。我可以通過檢查有問題的線路來解決這個問題。不過,我必須爲許多不同的控件類型執行此操作,而不僅僅是這個基本示例中顯示的一個參考。
所以我的問題是,有沒有一種優雅的方式來讓這個調用只返回一個空字符串,而不是這個異常?
public class Parameter
{
public string ID;
}
public class LabelCtrl
{
public string Name;
public Parameter LinkedParameter;
}
public class XMLManager
{
public void SaveControl(ControlInstance_LabelCtrl ci)
{
xmlWriter.WriteStartElement("ControlInstance_LabelCtrl");
{
xmlWriter.WriteElementString("Name", ci.Name);
// Elegant way to insert empty string instead of causing NullReferenceException error
xmlWriter.WriteElementString("LinkedParameter", ci.LinkedParameter.ID);
}
xmlWriter.WriteEndElement();
}
}
爲什麼不使用Try/Catch?或者我錯過了什麼? – uTeisT
爲什麼要趕上例外,如果你能阻止它們? @uteist –
我的意思是,把它放在try/catch中,如果它被捕獲,則返回String.Empty。或者,如果x是空的,然後做一些塊。我仍然懷疑我是否錯過了一些東西@PatrickHofman – uTeisT