PDA

View Full Version : سوال: چگونه خطای "Object reference not set to an instance of an object." را رفع نمایم؟



amirkabir93
جمعه 05 اردیبهشت 1393, 18:44 عصر
باسلام. من در C# برنامه ای را به صورت کنسولی ایجاد نموده ام و در آن کلاس های زیر را تعریف نموده ام:

class myClass
{
public string name;
public string lname;
}


class Program
{
void main()
{
myClass[] clsmy = new myClass[100];
clsmy[0].name = "ahmad";
clsmy[1].lname = "amiri";
}
}

اما هنگام اجرای برنامه، در خط clsmy[0].name="ahmad" خطای "Object reference not set to an instance of an object." را می دهد.
تصویر خطا نیز در قسمت ضمیمه ها آمده است.
لطفا و خواهشا، اساتید و دوستان هرچه سریعتر، پاسخ اینجانب را بدهند.

باتشکر

mortezasar
جمعه 05 اردیبهشت 1393, 19:00 عصر
سلام شما بیا قبلش یک string بساز و احمد رو بریز توی استرینگ بعد اون استرینگ رو بده به کدت اینجوری


class myClass
{
public string name;
public string lname;
}

class Program
{
void main()
{
myClass[] clsmy = new myClass[100];
String name="Ahmad";
String fam = "Amiri";
clsmy[0].name = name;
clsmy[1].lname = fam;

}
}

amirkabir93
جمعه 05 اردیبهشت 1393, 19:11 عصر
سلام شما بیا قبلش یک string بساز و احمد رو بریز توی استرینگ بعد اون استرینگ رو بده به کدت اینجوری


class myClass
{
public string name;
public string lname;
}

class Program
{
void main()
{
myClass[] clsmy = new myClass[100];
String name="Ahmad";
String fam = "Amiri";
clsmy[0].name = name;
clsmy[1].lname = fam;

}
}



ممنون. ولی باز هم همون خطا رو داد. نمی دونم مشکل از کجاست. هیچ چیز پیچیده ای هم ننوشته ام.

mortezasar
جمعه 05 اردیبهشت 1393, 19:15 عصر
برنامه ات رو خط به خط تریس کن ببین توی متغیر ها مقدار هست یا نه ؟
اگه توی متغیر ها مقدار بود مشکل سمت کلاسی هست که نوشتی احتمالا

mortezasar
جمعه 05 اردیبهشت 1393, 22:44 عصر
مشکلت حل شد !

بهزاد علی محمدزاده
شنبه 06 اردیبهشت 1393, 00:21 صبح
وقتی آرایه ایی از کلاس ایجاد می کنی . اندیس صفر باید به Object ایجاد شده اشاره کنه ( new شده ) . و شما از طریق اندیس ۰ به اون آبجکت دسترسی دارید و می تونید به Name و LastName مقدار بدی :

بهزاد علی محمدزاده
شنبه 06 اردیبهشت 1393, 00:35 صبح
Editor سایت ظاهرا مشکل داره ! :‌


clsmy[0] = new Myclass()