小编nsc*_*rag的帖子

在C#中,字段初始化器和对象初始化器如何交互?

我主要是一名C++开发人员,但最近我一直在用C#开发一个项目.今天我在使用对象初始化器时遇到了一些意外的行为,至少对我来说是这样.我希望这里有人可以解释发生了什么.

例A

public class Foo {
    public bool Bar = false;
}

PassInFoo( new Foo { Bar = true } );
Run Code Online (Sandbox Code Playgroud)

例B

public class Foo {
    public bool Bar = true;
}

PassInFoo( new Foo { Bar = false } );
Run Code Online (Sandbox Code Playgroud)

示例A按照我的预期工作.传递给PassInFoo的对象将Bar设置为true.但是,在示例B中,尽管在对象初始值设定项中赋值为false,但foo.Bar设置为true.什么会导致示例B中的对象初始化程序看似被忽略?

c# mono initialization unity-game-engine

5
推荐指数
2
解决办法
1136
查看次数

标签 统计

c# ×1

initialization ×1

mono ×1

unity-game-engine ×1