你可以随时像这样初始化你的类
public class MyClass
{
public MyClass() {
this.MyProp1 = this.MyProp2 = String.Empty;
}
public string MyProp1 { get; set; }
public string MyProp2 { get; set; }
}
除非您在编程中将其分配为null
值,否则new MyClass()
始终会在它们的2个属性中具有String.Empty
...
来自评论:
在这种情况下,我会调用一个帮助程序,例如:string name = myHelper.CheckNode(xmlNode); 在这个帮助程序中,我检查它是否为空,任何其他检查,我可以轻松地调整帮助程序方法,并且它将对所有元素可用,并且您可以扩展它以支持不仅是字符串而且还有所有其他数据类型
所以,想象一下你正在从XML中读取节点,你可以像这样编写它们:
string name = myHelper.CheckNode(node);
在你的帮助器中,你可以这样写:
XmlNodeList datasourceNodes = rootNode.SelectNodes("dataSources/dataSource");
foreach (XmlNode datasourceNode in datasourceNodes)
{
DataSource dataSource = new DataSource();
dataSource.Name = myHelper.CheckAttr(datasourceNode.Attributes["name"]);
dataSource.ODBC = myHelper.CheckNode(datasourceNode.SelectSingleNode("odbc"));
dataSource.UID = datasourceNode.CheckNode("user");
dataSource.PWD = datasourceNode.CheckAttr("password");
ds.Add(dataSource);
}
你的辅助程序可以有一个类似于以下的方法:
public static string CheckAttr(XmlAttribute attr)
{
return attr == null ? "" : attr.Value.Trim();
}
public static string CheckNode(XmlNode node)
{
return node == null ? "" : node.InnerText.Trim();
}
或者对于变体(扩展方法)
public static string CheckAttr(this XmlNode, string attrName)
{
return attrName[attrName] == null ? "" : attrName[attrName].Value.Trim();
}
public static string CheckNode(this XmlNode, string nodeName)
{
return node.SelectSingleNode(nodeName) == null ?
"" :
node.SelectSingleNode(nodeName).InnerText.Trim();
}