我怎么能使一个字段在一个类被设置为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字符串中没有响应值?

注意:我有一个关于使用属性的建议,我认为这将工作,但我不确定如何在实践中做到这一点。

我怎么能使一个字段在一个类被设置为false,如果值被设置为空

您应该使用属性:

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)值在里面。