Windows runtime 这些语句在C++/CX?
这些是声明Windows runtime 这些语句在C++/CX?,windows-runtime,c++-cx,Windows Runtime,C++ Cx,这些是声明 this->SizeChanged += ref new SizeChangedEventHandler(this, &MainPage::MainPage_SizeChanged); Scenarios->SelectionChanged += ref new SelectionChangedEventHandler(this, &MainPage::Scenarios_SelectionChanged); //These lines were in
this->SizeChanged += ref new SizeChangedEventHandler(this, &MainPage::MainPage_SizeChanged);
Scenarios->SelectionChanged += ref new SelectionChangedEventHandler(this, &MainPage::Scenarios_SelectionChanged);
//These lines were in MainPage Constructor.
//Scenarios is the name of a ListBox
这两条线是干什么的
什么是MainPage::MainPage\u大小已更改和MainPage::Scenarios\u selection已更改
?
我可以看到两个同名函数,但函数调用中为什么没有()
?
还有为什么它们前面有&?
如果它们的返回类型为void,如何将它们用作参数
在这两行中,为什么使用+=而不仅仅是=?如果使用=会发生什么情况?这些行正在订阅事件。例如,SizeChanged
是一个事件,SizeChangedEventHandler
是一个委托类型(类似于函数指针,但也包含对类实例的引用),而MainPage\u SizeChanged
是一个事件处理程序
没有()
,因为它不是函数调用。执行该行时不会调用函数MainPage\u SizeChanged
,它将在每次引发SizeChanged
事件时执行。使用<代码>和代码>,因为这是函数指针在C++中如何创建的。
如果您使用=
而不是+=
,您的代码将无法编译。你不能设置一个事件,你只能订阅(使用<代码> += <代码>)并从它中退订(<代码> -= <代码> > .< /p>对于<代码>和<代码>,在你最喜欢的C++书籍中查找“成员函数指针”。对于+=
查找。