我提供了一种方法来搜索xml文件,以便根据下面的代码检索特定的用户 string xpath = "Users/User[@Code="+ Code +"]"; XmlNode user = _xmlDatabase.SelectSingleNode(xpath); ">
我得到了如下的xml结构:
<Users>
<User Code="1" Roles="1,2,3" />
</Users>
我提供了一种方法来搜索xml文件,以便根据下面的代码检索特定的用户
string xpath = "Users/User[@Code="+ Code +"]";
XmlNode user = _xmlDatabase.SelectSingleNode(xpath);
if (user != null)
{
XmlAttributeCollection userMeta = user.Attributes;
if (userMeta != null)
{
int code = int.Parse(Code);
User userInstance = new User(Code, userMeta[1].Value, userMeta[2].Value);
return userInstance;
}
}
我会调用这个方法,比如User user = GetUserByCode("1");
& _xmlDatabase
是XmlDocument
类的一个实例。问题是,
当没有匹配的用户时,我搜索的found
因此,我修改了方法以返回"null"
,但编译器抱怨说是"null"
。
我有点想让最终用户去做
User user = GetUserByCode("1");
if(user == null)
Display "No User Found"
发布于 2011-11-03 21:56:13
请参阅对以下代码的评论
if (user != null) // if user == null nothing will return
{
XmlAttributeCollection userMeta = user.Attributes;
if (userMeta != null) // if userMeta == null nothing will return
{
int code = int.Parse(Code);
User userInstance = new User(Code, userMeta[1].Value, userMeta[2].Value);
return userInstance;
}
}
您可以如下所示解决这一问题
public User GetUserByCode(string Code)
{
User userInstance = null;
string xpath = "Users/User[@Code="+ Code +"]";
XmlNode user = _xmlDatabase.SelectSingleNode(xpath);
if (user != null)
{
XmlAttributeCollection userMeta = user.Attributes;
if (userMeta != null)
{
int code = int.Parse(Code);
userInstance = new User(Code, userMeta[1].Value, userMeta[2].Value);
}
}
return userInstance;
}
以上代码在任何情况下都将返回null或userInstance。
https://stackoverflow.com/questions/8005310
复制相似问题