无论出于何种原因,在应用程序(C#)中忽略Windows运行时组件中定义的value struct
的初始化值。
CX / C ++ :
namespace RuntimeComponent1
{
public value struct Foo {
bool flag1 = true;
bool flag2 = false;
};
}
C#
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
var settings = new RuntimeComponent1.Foo();
Debug.WriteLine(settings.flag1); // Output: False
Debug.WriteLine(settings.flag2); // Output: False
}
}
请注意,flag1
应为True
,而应为False
。为什么? !
编辑: 根据@HansPassant的建议,为此创建一张票:https://connect.microsoft.com/VisualStudio/feedback/details/2702659 如果你也认为这是一个问题。请帮忙投票吧。
答案 0 :(得分:1)
在Microsoft connect https://connect.microsoft.com/VisualStudio/feedback/details/2702659上发布问题后,我收到了Microsoft VC ++团队的电子邮件更新
感谢您报告此问题。当值类的成员具有默认成员初始值设定项时,Visual C ++编译器工具集的下一版本将发出错误。