C# 如何使测试内的变量在块外可用?
我有以下代码:C# 如何使测试内的变量在块外可用?,c#,C#,我有以下代码: if (question.DetailsJSON != null) { var details = JSON.FromJSONString<List<Question.Detail>>(question.DetailsJSON); } if(question.DetailsJSON!=null){ var details=JSON.FromJSONString(question.DetailsJSON); } 这是可行的,但在区块之外,细节不可用
if (question.DetailsJSON != null) {
var details = JSON.FromJSONString<List<Question.Detail>>(question.DetailsJSON);
}
if(question.DetailsJSON!=null){
var details=JSON.FromJSONString(question.DetailsJSON);
}
这是可行的,但在区块之外,细节不可用
如果不预先声明details变量,是否有一种方法可以进行if测试,并且在if之外仍然有可用的详细信息?您可以将声明和初始化结合起来,并使用条件运算符避免在if语句中引入新的作用域:
var details = question.DetailsJSON != null
? JSON.FromJSONString<List<Question.Detail>>(question.DetailsJSON)
: null;
var details=question.DetailsJSON!=无效的
? FromJSONString(question.DetailsJSON)
:null;
您可以将声明和初始化结合起来,并使用条件运算符避免在if
语句中引入新的作用域:
var details = question.DetailsJSON != null
? JSON.FromJSONString<List<Question.Detail>>(question.DetailsJSON)
: null;
var details=question.DetailsJSON!=无效的
? FromJSONString(question.DetailsJSON)
:null;
请记住,在以后使用时,您仍然需要在详细信息上测试null。请记住,在以后使用时,您仍然需要在详细信息上测试null。