9

我在 C# Visual Studio 2010 中有这行:

IntPtr a = new IntPtr(10);
IntPtr b = a + 10;

它说:

运算符“+”不能应用于“System.IntPtr”和“int”类型的操作数。

MSDN 说这个操作应该可以工作。

4

1 回答 1

19

如果您的目标是 .net 4,那么您的代码就可以工作。

对于早期版本,您需要使用IntPtr.ToInt64.

IntPtr a = new IntPtr(10);
IntPtr b = new IntPtr(a.ToInt64()+10);

使用ToInt64而不是ToInt32让您的代码同时适用于 32 位和 64 位。

于 2011-10-01T15:32:55.870 回答