更新:将bool默认值设置为true

时间:2017-06-06 15:41:48

标签: c# jquery xml

我需要找到一种方法将缺陷的默认值设置为true,我将其作为参数传递,但我并不总是设置它。

缺血是在我的配置文件中定义的,我有多个配置,有些是定义的,有些则不是。我不会理解为什么我使用不同的配置。当它没有定义时,它默认为false,但我需要它是真的。

function showSaveCardControl(ischecked) { 
    $(".saveCardControl").slideDown().find("input").prop("checked", ischecked); 
}

如果尚未定义,我需要基本上检查复选框,但由于默认值为false,因此未选中该复选框。

更新

我将xml元素传递给c#属性。 xml将是我设置缺陷值的地方,但由于我没有将它设置在xml的某个地方,或者一旦它被转换为c#属性,它就被设置为false。我猜它是设置为属性试图调用该xml值。

我尝试使用属性设置默认值。

[XmlElement("EasyPaySaveCardControlChecked")]
[DefaultValue(true)]
public bool ischecked { get; set; }

我尝试过使用构造函数设置它。

public className()
{
    ischecked = true;
}

我也试过让所有bools都可以为空,但值仍然设置为false

这些解决方案都不起作用,我不明白为什么。无论我做什么,属性设置为false,如果设置为undefined它会没事,但bool必须默认为false

4 个答案:

答案 0 :(得分:6)

尝试这样的事情:

function showSaveCardControl(ischecked) { 
    if ('undefined' === typeof ischecked) ischecked = true;
    $(".saveCardControl").slideDown().find("input").prop("checked", ischecked);
}

答案 1 :(得分:0)

这应该可以解决问题:

function showSaveCardControl(ischecked) { 
    if(typeof ischecked == 'undefined') 
       ischecked = true;

    $(".saveCardControl").slideDown().find("input").prop("checked", ischecked); 
}

答案 2 :(得分:0)

假设属性是类的一部分,那么只需在类构造函数中将其默认值设置为true,如果您有逻辑从配置中设置值,它将被覆盖在行上。

public class LukesClass
{
 public String whatever {get;set;}
 public bool isChecked {get;set;}

 public LukesClass()
 {
  isChecked = true;
 }
}

答案 3 :(得分:0)

尝试使用自动属性初始化程序(C#6.0和更高版本):

public bool isRequired { get; set; } = true;

我有一种情况,我需要一个未指定的xml bool导入为true而不是false。当标签指定true或不存在标签时,以上代码将导致isRequired为true。仅当标签将其定义为false时,它才会为false。