PDA

View Full Version : آرایه از کلاس



vahidiran
یک شنبه 22 دی 1387, 23:19 عصر
من یک کلاس به شکل زیر ساخته ام

public class Person
{

public string Name;
public int No;


}
با دستورات زی رمی تونم در شی از اون کلاس بنویسم و بخونم


Person StudentData = new Person();
StudentData.Name = "vahid";
StudentData.No = 100;

حالا من می خوام آرایه از این کلاس داشته باشم که نمی تونم کدشو بنویسم
کد زیر اشکال نمی گیره و در هنگام اجرا خطای
null
می ده



Person[] StudentDataArray;
StudentDataArray = new Person[100];
StudentDataArray[1].Name="VAHID";
StudentDataArray[1].NO = 123;


کسی می تونه منو راهنمایی کنه که چه جوذ بتونم یک آرایه از کلاس ها بسازم

Amir Oveisi
یک شنبه 22 دی 1387, 23:56 عصر
باید تک تک اعضای آرایه رو new کنید (مثلا با یک حلقه)

Person[] StudentDataArray;
StudentDataArray = new Person[100];
StudentDataArray[1] = new Person();
StudentDataArray[1].Name="VAHID";
StudentDataArray[1].NO = 123;

موفق باشید
jooje

arash.pm35
دوشنبه 23 دی 1387, 09:43 صبح
دوست نمي دونم شما براي چه كاري مي خواين از اين روش استفاده كنين ولي من به شما پيشنهاد مي كنم از ساختار (struct) استفاده كنيد

Amir Oveisi
دوشنبه 23 دی 1387, 11:48 صبح
دوستان مدیران محترم
من یک پستم اینجا حذف شده و چیزی هم نوشته نشده! (مطلبش هم مفید بود برای رفع مشکل این دوستمون)
خواستم ببینم به صلاح شما حذف شده یا یه مشکل دیگه ای پیش اومده
(pm اتون بسته بود مجبو شدم اینجا مطرح کنم ...ببخشید...)

hosseinsinohe
دوشنبه 23 دی 1387, 12:39 عصر
من یک کلاس به شکل زیر ساخته ام

public class Person
{

public string Name;
public int No;


}
با دستورات زی رمی تونم در شی از اون کلاس بنویسم و بخونم


Person StudentData = new Person();
StudentData.Name = "vahid";
StudentData.No = 100;

حالا من می خوام آرایه از این کلاس داشته باشم که نمی تونم کدشو بنویسم
کد زیر اشکال نمی گیره و در هنگام اجرا خطای
null
می ده



Person[] StudentDataArray;
StudentDataArray = new Person[100];
StudentDataArray[1].Name="VAHID";
StudentDataArray[1].NO = 123;


کسی می تونه منو راهنمایی کنه که چه جوذ بتونم یک آرایه از کلاس ها بسازم


بهتره در این مورد به جای تعریف آرایه ای از کلاس ها که کاری غیر معقول هست از ساختار ArrayList استفاده کنید.
برای تعریف و استفاده از ArrayList باید در بالای فرم عبارت زیر را اضافه کنید.



using System.Collections;

برای تعریف ArrayList کد زیر را بنویسید:

private ArrayList Persons=new ArrayList();

برای اضافه کردن هر شی از این کلاس به ArrayList می توانید از متد Add استفاده کنید:


Persons.Add(اسم شی از کلاس Person)

علیرضا مداح
دوشنبه 23 دی 1387, 20:07 عصر
سلام دوست عزیز،

بهتره در این مورد به جای تعریف آرایه ای از کلاس ها که کاری غیر معقول هست از ساختار ArrayList استفاده کنید.
برای تعریف و استفاده از ArrayList باید در بالای فرم عبارت زیر را اضافه کنید.

البته بهره گیری از Generic List به Performance بالاتری منجر می شود، چون از عملیات Boxing و UnBoxing معاف خواهید شد(البته این موضوع برای Generic List هایی که آبجکت های آن Value-Type هستند صادق می باشد)،


List<Person> list = new List<Person>();
Person studentData = new Person();
studentData.Age = 25;
studentData.Name = "Alireza";
list.Add(studentData);

vahidiran
سه شنبه 24 دی 1387, 22:48 عصر
[QUOTE=bermooda;663291]باید تک تک اعضای آرایه رو new کنید (مثلا با یک حلقه)

Person[] StudentDataArray;
StudentDataArray = new Person[100];
StudentDataArray[1] = new Person();
StudentDataArray[1].Name="VAHID";
StudentDataArray[1].NO = 123;

موفق باشید
jooje[/QUOTEبا این روش کار من راه می افته حالا اگه بخوام بصورت گلوبال باشه یعنی این ارایه توی تمامی فرم ها ظاهر شه باست چکار کنم

Amir Oveisi
پنج شنبه 26 دی 1387, 18:25 عصر
بصورت public تعریفش بکنید

vahidiran
پنج شنبه 26 دی 1387, 21:52 عصر
من نمی دونم چی رو باید public باید تعریف کنم
می تونید منو راهنمایی کنید

Amir Oveisi
جمعه 27 دی 1387, 12:23 عصر
آرایه ای رو که تعریف کردید!

vahidiran
جمعه 27 دی 1387, 15:07 عصر
public person[] StudentDataArray;
StudentDataArray = new Person[100];
StudentDataArray[1] = new Person();
StudentDataArray[1].Name="VAHID";
StudentDataArray[1].NO = 123;

من این کار رو کردم نمی شه مثل کد بالا روی همون خط اول ایراد می گیره

می شه بگید کجا کلاس ر. تعریف کنم
اصلا اگه زحمتی نیست کدشو بنویسید برام

Amir Oveisi
جمعه 27 دی 1387, 16:38 عصر
class MyClass
{
public person[] StudentDataArray;
//constructor
public MyClass()
{
StudentDataArray = new Person[100];
for( int i = 0; i < StudentDataArray.Lenght; i++)
StudentDataArray[i] = new Person();
}
}