我把它打印到控制台上,它写着false。
false
bool _turnedOn, _turnedOff; public bool Start { get => _turnedOn; private set => _turnedOn = true; }
如果我将变量设置为true,为什么它返回false?
true
e0bqpujr1#
bool _turnedOn, _turnedOff;
这两个都是假的,当你访问Start时,它会给予你_turnedOn,这是假的,它不会被设置为真,直到你试图设置Start为任何值,因为你已经定义了setter为_turnedOn = true。如果你把它声明为bool _turnedOn = true;,那么你会得到你想要的,我想,但是我不明白,为什么要为一个你想要永远为真的值费心呢?
Start
_turnedOn
_turnedOn = true
bool _turnedOn = true;
sqserrrh2#
“c#”中的布尔值默认为false。由于Start没有初始化为“true”,因此默认为false。使用私有setter时,需要在构造函数中设置它,如下所示
Class StartClass{ StartClass() { Start = true; } }
bf1o4zei3#
在.NET(包括C#)中,布尔值默认设置为False。bool类型的默认值为false。https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/bool此外,最佳做法是在创建变量时直接指定默认值,沿着将它们放在单独的行中。我也不确定用例,但是使用一个bool可能比使用两个bool更好。
js4nwp544#
通过查看成员名称,看起来并不像你不需要两个变量来表示off/on,因为你只需要表示两个值on或off,这可以通过使用一个bool变量来完成。现在到你的问题.你只是设置_turnedOn变量.和默认值的bool是false.所以_turnedOff将是false只.
bool
_turnedOff
4条答案
按热度按时间e0bqpujr1#
这两个都是假的,当你访问
Start
时,它会给予你_turnedOn
,这是假的,它不会被设置为真,直到你试图设置Start
为任何值,因为你已经定义了setter为_turnedOn = true
。如果你把它声明为
bool _turnedOn = true;
,那么你会得到你想要的,我想,但是我不明白,为什么要为一个你想要永远为真的值费心呢?sqserrrh2#
“c#”中的布尔值默认为false。
由于Start没有初始化为“true”,因此默认为false。
使用私有setter时,需要在构造函数中设置它,如下所示
bf1o4zei3#
在.NET(包括C#)中,布尔值默认设置为False。
bool类型的默认值为false。
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/bool
此外,最佳做法是在创建变量时直接指定默认值,沿着将它们放在单独的行中。
我也不确定用例,但是使用一个bool可能比使用两个bool更好。
js4nwp544#
通过查看成员名称,看起来并不像你不需要两个变量来表示off/on,因为你只需要表示两个值on或off,这可以通过使用一个bool变量来完成。
现在到你的问题.你只是设置
_turnedOn
变量.和默认值的bool
是false
.所以_turnedOff
将是false
只.