3

何らかの理由で、value structWindows ランタイム コンポーネントで定義された初期化された値は、アプリ (C#) では無視されます。

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ください。なんで?!TrueFalse


編集: @HansPassant の提案に従って、このチケットを作成します: https://connect.microsoft.com/VisualStudio/feedback/details/2702659 これも問題だと思われる場合。投票にご協力ください。

4

1 に答える 1

1

Microsoft Connect https://connect.microsoft.com/VisualStudio/feedback/details/2702659に問題を投稿した後、Microsoft VC++ チームから電子メールの更新を受け取りました。

この問題を報告していただきありがとうございます。Visual C++ Compiler Toolset の次のリリースでは、値クラスのメンバーに既定のメンバー初期化子がある場合にエラーが発生します。

于 2016-08-10T13:11:31.113 に答える