2016-05-13 17 views
3

何らかの理由で、Windowsランタイムコンポーネントで定義されたvalue structの初期化された値は、アプリケーション(C#)で無視されます。WinRTで値構造体が初期化されない

CX/C++flag1Trueあるべきではなく、それはFalseであること

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 
    } 
} 

注意してください。どうして? !


編集:あなたもこれが問題であると思われる場合https://connect.microsoft.com/VisualStudio/feedback/details/2702659 : @HansPassantによって示唆されるように、このためにチケットを作成します。それを投票するのを手伝ってください。

+3

すべての言語で値型(例:JS)のコンストラクタがサポートされているわけではありません。したがって、WinRTは値型のコンストラクタをサポートしていません。 (より正確には、値型のコンストラクタは投影されません)。 –

+0

@RaymondChenのような意味があります。私は、それがサポートされていないという事実よりも警告/エラーがないという事実については、より怒っていると思います。 –

+0

connect.microsoft.comでこれを報告すると気分が良くなります –

答えて

1

マイクロソフトに問題を投稿した後https://connect.microsoft.com/VisualStudio/feedback/details/2702659

を接続Iは、Microsoft VC++チームからのメールの更新を持っているが、この問題を報告していただき、ありがとうございます。値クラスのメンバに既定のメンバ初期化子がある場合、Visual C++コンパイラツールセットの次のリリースではエラーが発生します。

関連する問題