如何将 system.intptr 转换为 int
How to convert system.intptr to int
我在编译 visual studio 中的程序时遇到问题。请帮忙。
...
else
{
string str4 = strArrays1[i];
chrArray = new char[] { ':' };
strArrays = str4.Split(chrArray);
string str5 = strArrays[0];
string str6 = "";
for (j = 1; j < (int)strArrays.Length; j++)
{
str6 = string.Concat(str6, strArrays[j]);
if (j < (int)strArrays.Length - 1)
{
string[] strArrays3 = strArrays;
string[] strArrays4 = strArrays3;
int num1 = j;
IntPtr intPtr = (IntPtr)num1;
strArrays3[num1] = string.Concat(strArrays4[intPtr], ":");
}
}
this.hashTable[str5] = str6;
}
...
问题出现在行:
strArrays3 [num1] = string.Concat (strArrays4 [intPtr], ":");
错误:
CS0266 C# 无法将类型 'System.IntPtr' 隐式转换为 'int'。存在显式转换(是否缺少强制转换?)
您需要将 IntPtr
转换为 int
,如下所示。
strArrays3[num1] = string.Concat(strArrays4[(int)intPtr], ":");
但是您应该首先使用 int
。然后你就不需要转换为 int
.
我在编译 visual studio 中的程序时遇到问题。请帮忙。
...
else
{
string str4 = strArrays1[i];
chrArray = new char[] { ':' };
strArrays = str4.Split(chrArray);
string str5 = strArrays[0];
string str6 = "";
for (j = 1; j < (int)strArrays.Length; j++)
{
str6 = string.Concat(str6, strArrays[j]);
if (j < (int)strArrays.Length - 1)
{
string[] strArrays3 = strArrays;
string[] strArrays4 = strArrays3;
int num1 = j;
IntPtr intPtr = (IntPtr)num1;
strArrays3[num1] = string.Concat(strArrays4[intPtr], ":");
}
}
this.hashTable[str5] = str6;
}
...
问题出现在行:
strArrays3 [num1] = string.Concat (strArrays4 [intPtr], ":");
错误:
CS0266 C# 无法将类型 'System.IntPtr' 隐式转换为 'int'。存在显式转换(是否缺少强制转换?)
您需要将 IntPtr
转换为 int
,如下所示。
strArrays3[num1] = string.Concat(strArrays4[(int)intPtr], ":");
但是您应该首先使用 int
。然后你就不需要转换为 int
.