gpt4 book ai didi

c# - 在 C# 构造函数初始值设定项中使用默认属性值

转载 作者:行者123 更新时间:2023-11-30 15:20:43 26 4
gpt4 key购买 nike

考虑以下类:

class Foo
{
public string Bar { get; set; } = "foobar";
}

还有这段代码:

var foo = new Foo {
Bar = bar == null
? null
: bar
};

很明显,执行此代码后,Bar 的值将为null(假设bar = null)。

我希望构造函数初始化器在给定情况下使用默认属性值(例如,当 barnull 时)。我想知道是否有更简单的方法来代替使用:

if (bar == null) {
foo = new Foo();
} else {
foo = new Foo { Bar = bar };
}

或者

foo = new Foo();
if (bar != null)
foo.Bar = bar;

最佳答案

好吧,您可以使用空合并运算符来简化它:

  var foo = new Foo();
foo.Bar = bar ?? foo.Bar;

或者您可以更改属性以检查空值并忽略它们:

    private string _bar = "foobar";
public string Bar
{
get { return _bar; }
set { _bar = value ?? _bar; }
}

然后你可以使用这段代码来实例化Foo:

   var foo = new Foo() { Bar = bar };

请注意,现在如果 bar 为 null,其值将在属性的 setter 中被忽略。

关于c# - 在 C# 构造函数初始值设定项中使用默认属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39363937/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com