我怎么能使一个字段在一个类被设置为false,如果值被设置为空
本文关键字:一个 设置 如果 false 怎么能 字段 | 更新日期: 2023-09-27 18:13:55
我有以下内容:
var result2 = result1
.Select((t, index) => new {
Answer = t.Answer,
Answers = JSON.FromJSONString<Answer2>(t.AnswerJSON)
});
return Ok(result2);
public class Answer2 {
public bool? Correct; // Maybe this should be a property
public bool Response; // Maybe this should be a property
}
和我的String>对象函数:
public static T FromJSONString<T>(this string obj) where T : class
{
if (obj == null)
{
return null;
}
using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(obj)))
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
T ret = (T)ser.ReadObject(stream);
return ret;
}
}
是否有一种方法,我可以使响应字段为假,如果在JSON字符串中的响应为空存在,或者如果在JSON字符串中没有响应值?
注意:我有一个关于使用属性的建议,我认为这将工作,但我不确定如何在实践中做到这一点。
您应该使用属性:
public class Answer2 {
private bool correct; // This field has no need to be nullable
public bool? Correct
{
get { return correct; }
set { correct = value.GetValueOrDefault(); }
}
}
在Q和A部分之后,您应该能够在属性上这样做:
private bool? whatever;
public bool? Whatever
{
get { return whatever; }
set
{
if (value == null)
whatever = false;
else
whatever = value;
}
}
这样你可以传递一个null
值给属性,但它只能有一个bool
(true/false)值在里面。