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报告此问题 –