PDA

View Full Version : تبدیل آرایه long? به long



alireza_raj
دوشنبه 24 مهر 1391, 11:26 صبح
سلام دوستان گل
من یه مشکلی کوچیک دارم که یه آرایه دارم از نوعlong و یه متغییر هم از نوع long? حالا میخام مقدار اولی رو بریزم تو دومی که پیغام زیر میاد

long[] rett;
long ?[] msggIdArray = sendResult.msgIdArray;
rett = sendResult.msgIdArray;



Cannot implicitly convert type 'long?[]' to 'long
بدون اینکه نوع long va long ? رو مثل هم کنم

morteza271
دوشنبه 24 مهر 1391, 11:36 صبح
اینطوری :
rett = sendResult.msgIdArray as long;

alireza_raj
دوشنبه 24 مهر 1391, 11:43 صبح
اینطوری :
rett = sendResult.msgIdArray as long;

این ارورر میاد
The as operator must be used with a reference type or nullable type ('long' is a non-nullable value type)

morteza271
دوشنبه 24 مهر 1391, 12:00 عصر
آره شرمنده تستش نکردم!
مثل اینکه نمیشه مستقیم این کار رو کرد!
حالا واسه چی از long? استفاده می کنید،شاید روش دیگه ای هم باشه!!!

alireza_raj
دوشنبه 24 مهر 1391, 12:02 عصر
آره شرمنده تستش نکردم!
مثل اینکه نمیشه مستقیم این کار رو کرد!
حالا واسه چی از long? استفاده می کنید،شاید روش دیگه ای هم باشه!!!

سلام دوست خوبم
آخه یه وب سرویسه که بیسش اینطوری تعریف کرده و هرکدوم تو جاهای مختلف برنامه صدا زده شدن و مقدارشون تغییر میکنه نمیشد تغییر بدم
خودم نمیدونم long? برای چی هست و نوع داده من long هست که به این مشکل بر خوردم موندم توش

morteza271
دوشنبه 24 مهر 1391, 12:15 عصر
long? میتونه مقدارش null باشه ولی long نمیتونه!!!

کد زیر رو ببینید :
private void button2_Click(object sender, EventArgs e)
{
long?[] Arr1 = new long?[3];
Arr1[0] = 0;
Arr1[2] = 2;

long[] Arr2 = new long[3];
for (int i = 0; i < Arr1.Length; i++)
{
if (Arr1[i] != null)
Arr2[i] = (long)Arr1[i];
else
Arr2[i] = 0;
}
}

اگه میتونید از حلقه مثل حلقه ای که توی کد بالا هست استفاده کنید!