2016-05-13 46 views
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 
    } 
} 

注意flag1True而是它是False。爲什麼? !


編輯: 正如@HansPassant建議,創建一個票此:https://connect.microsoft.com/VisualStudio/feedback/details/2702659 如果你也覺得這是個問題。請幫忙投票吧。

+3

並非所有語言都支持值類型的構造函數(例如JS)。因此,WinRT不支持值類型的構造函數。 (更準確地說,價值類型的構造函數不會被投影。) –

+0

@RaymondChen有點意義。我想我對這樣一個事實感到更加不安,即沒有任何警告/錯誤,而不是它不被支持的事實。 –

+0

感謝您通過connect.microsoft.com報告此問題 –

回答