我在使用 if 语句检查对象是否为空时遇到问题。
我有一个 webClient,在 try/catch 中从网站中提取 JSON 字符串。如果出错,那是因为 API 中不存在 3 位国家/地区,我只想跳过它。
这是我的代码:
System.Net.WebClient wc = new System.Net.WebClient();
RootObject ro;
try
{
string resp = wc.DownloadString("https://restcountries.eu/rest/v2/alpha/" + Row.Code.ToString());
JavaScriptSerializer js = new JavaScriptSerializer();
ro = js.Deserialize<RootObject>(resp);
}
catch (Exception e)
{ }
if (ro.Region != null)
{
Row.Region = ro.Region;
Row.SubRegion = ro.Subregion;
}
RootObject 是一个要反序列化的类。这很好用。
但是,我在 if 语句中收到错误“使用未分配的类‘ro’。
有人可以帮我解决这个问题吗? ro 在 if 中按预期工作?
我还尝试检查特定节点,但它仍然挂在“ro”部分。
另外,这是 SSIS 中的脚本组件。
Thanks
-
有可能的是try
块永远不会赋值给ro
因此它将在 try 块之外被取消分配。要解决此问题,请分配一个值:
RootObject ro = null;
-
Since ro
可能null
,你需要检查你的if
在尝试访问成员之前声明:
if (ro != null && ro.Region != null)
{
Row.Region = ro.Region;
Row.SubRegion = ro.Subregion;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)