gpt4 book ai didi

C#.NET IntPtr 类型无效

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:27 24 4
gpt4 key购买 nike

private string getLngLat(string strLAC, string strCID)
{
string str;
try
{
HttpWebRequest length = (HttpWebRequest)WebRequest.Create(new Uri("http://www.google.com/glm/mmap"));
length.Method = "POST";
int num = Convert.ToInt32(strLAC);
byte[] numArray = AjaxFrm.PostData(num, Convert.ToInt32(strCID));
length.ContentLength = (long)((int)numArray.Length);
length.ContentType = "application/binary";
length.GetRequestStream().Write(numArray, 0, (int)numArray.Length);
HttpWebResponse response = (HttpWebResponse)length.GetResponse();
byte[] numArray1 = new byte[checked((IntPtr)response.ContentLength)]; // ERROR AT HERE
response.GetResponseStream().Read(numArray1, 0, (int)numArray1.Length);
if (response.StatusCode != HttpStatusCode.OK)
{
str = string.Format("Error {0}", response.StatusCode);
}
else
{
byte num1 = numArray1[0];
byte num2 = numArray1[1];
byte num3 = numArray1[2];
if ((numArray1[3] << 24 | numArray1[4] << 16 | numArray1[5] << 8 | numArray1[6]) != 0)
{
str = "";
}
else
{
double num4 = (double)(numArray1[7] << 24 | numArray1[8] << 16 | numArray1[9] << 8 | numArray1[10]) / 1000000;
double num5 = (double)(numArray1[11] << 24 | numArray1[12] << 16 | numArray1[13] << 8 | numArray1[14]) / 1000000;
str = string.Format("{0}&{1}", num5, num4);
}
}
}
catch (Exception exception)
{
str = string.Format("Error {0}", exception.Message);
}
return str;
}

byte[] numArray1 = new byte[checked((IntPtr)response.ContentLength)];

这里我得到错误

错误 3 无法将类型“System.IntPtr”隐式转换为“int”。存在显式转换(您是否缺少转换?)

怎么会报这个错?如何解决?

最佳答案

直接指定数组长度即可,无需先尝试转换为IntPtr:

byte[] numArray1 = new byte[response.ContentLength];

IntPtr 是一种仅用于保存指针值的类型,因此整数类型的通常规则不适用。指针值不是合理的数组长度,因此语言设计者不允许使用 IntPtr 指定数组长度。

关于C#.NET IntPtr 类型无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18224202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com