不要返回错误,因为我期望null

时间:2017-07-26 11:40:35

标签: c#

这里我有从json字符串获取库存的示例。

inventory = JsonUtility.FromJson<InventoryModel>GFile.GetPlayer(FileComponent.PlayerInventory));

因为我从文件加载该字符串,所以它可能只是空白,我想首先检查它是否为空,我会这样做:

if(GFile.GetPlayer(FileComponent.PlayerInventory) != " ")
{
    inventory = JsonUtility.FromJson<InventoryModel>(GFile.GetPlayer(FileComponent.PlayerInventory));
}

所以我的问题是,如果有更优雅的方式来做这个而不是输入if这样的语句吗?

2 个答案:

答案 0 :(得分:3)

为什么不喜欢这样? :

var player = GFile.GetPlayer(FileComponent.PlayerInventory);
if(!string.IsNullOrWhiteSpace(player)) {
    inventory = JsonUtility.FromJson<InventoryModel>(player);
}

答案 1 :(得分:2)

我建议

string data = GFile.GetPlayer(FileComponent.PlayerInventory);
if(!string.IsNullOrWhiteSpace(data))
{
    inventory = JsonUtility.FromJson<InventoryModel>(data);
}

这样你只需要调用一次GetPlayer,如果结果数据是空字符串或者是空白字符串并不重要 - 它仍然不会进入该块并设置库存。

修改

对于旧版本的.Net,这也可以使用

string data = GFile.GetPlayer(FileComponent.PlayerInventory);
if(data != null && data.Trim().Length == 0)
{
    inventory = JsonUtility.FromJson<InventoryModel>(data);
}