何らかの理由で、Windowsランタイムコンポーネントで定義されたvalue struct
の初期化された値は、アプリケーション(C#)で無視されます。WinRTで値構造体が初期化されない
CX/C++:flag1
はTrue
あるべきではなく、それは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によって示唆されるように、このためにチケットを作成します。それを投票するのを手伝ってください。
すべての言語で値型(例:JS)のコンストラクタがサポートされているわけではありません。したがって、WinRTは値型のコンストラクタをサポートしていません。 (より正確には、値型のコンストラクタは投影されません)。 –
@RaymondChenのような意味があります。私は、それがサポートされていないという事実よりも警告/エラーがないという事実については、より怒っていると思います。 –
connect.microsoft.comでこれを報告すると気分が良くなります –