为什么在声明这个
时变量名之前的按位运算符Ping ^pingSender = gcnew Ping;
由于
答案 0 :(得分:1)
你在谈论这段代码吗?
Ping ^ pingSender = gcnew Ping;
// When the PingCompleted event is raised,
// the PingCompletedCallback method is called.
pingSender->PingCompleted += gcnew PingCompletedEventHandler( PingCompletedCallback );
这里暗示将从System.Net.NetworkInformation :: Ping创建ping类的实例。简单来说,这不是XOR操作,而是在C ++ for .NET的Microsoft实现中声明托管类型对象的语法。
答案 1 :(得分:0)
在这种情况下,^
不是按位异或;它声明pingSender
是对托管类型(.NET本机类型)Ping
的引用。
我假设您熟悉C#和常规,非托管C ++的基础知识。
这行代码等于
Ping pingSender = new Ping();
在C#中,如果Ping
是非托管C ++类,
Ping* pingSender = new Ping;
在C ++中。如您所见,^
在声明中使用时具有另一种含义,就像*
对C / C ++中的非托管类型所做的那样。