3
出於某種原因,應用程序(C#)中忽略了Windows運行時組件中定義的value struct
的初始化值。在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
}
}
注意flag1
應True
而是它是False
。爲什麼? !
編輯: 正如@HansPassant建議,創建一個票此:https://connect.microsoft.com/VisualStudio/feedback/details/2702659 如果你也覺得這是個問題。請幫忙投票吧。
並非所有語言都支持值類型的構造函數(例如JS)。因此,WinRT不支持值類型的構造函數。 (更準確地說,價值類型的構造函數不會被投影。) –
@RaymondChen有點意義。我想我對這樣一個事實感到更加不安,即沒有任何警告/錯誤,而不是它不被支持的事實。 –
感謝您通過connect.microsoft.com報告此問題 –