值结构未在WinRT中初始化

时间:2016-05-13 14:28:12

标签: c# windows-runtime c++-cx windows-8.1-universal

无论出于何种原因,在应用程序(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 如果你也认为这是一个问题。请帮忙投票吧。

1 个答案:

答案 0 :(得分:1)

在Microsoft connect https://connect.microsoft.com/VisualStudio/feedback/details/2702659上发布问题后,我收到了Microsoft VC ++团队的电子邮件更新

  

感谢您报告此问题。当值类的成员具有默认成员初始值设定项时,Visual C ++编译器工具集的下一版本将发出错误。