2016-05-13 90 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报告此问题 –

回答