Aus welchem Grund auch immer, der initialisierte Wert einer value struct
definiert in Windows Runtime Component wird in der App (C#) ignoriert.Wert Struktur nicht initialisiert in WinRT
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
}
}
Beachten Sie, dass flag1
True
sein sollte, sondern es ist False
. Warum? !
Edit: Wie @HansPassant vorgeschlagen, erstellen Sie ein Ticket für diese: https://connect.microsoft.com/VisualStudio/feedback/details/2702659 Wenn Sie auch denken, das ist ein Problem. Bitte helfen Sie mit, es zu wählen.
Nicht alle Sprachen unterstützen Konstruktoren für Werttypen (z. B. JS). Daher unterstützt WinRT keine Konstruktoren für Werttypen. (Genauer gesagt, Konstruktoren für Werttypen werden nicht projiziert.) –
@RaymondChen Art von Sinn. Ich denke, ich ärgere mich über diese Tatsache, dass es keine Warnungen/Fehler gibt als die Tatsache, dass es nicht unterstützt wird. –
Fühlen Sie sich besser, indem Sie dies unter connect.microsoft.com melden. –