کلاسهای تو در تو یا Nested Class
کسی می تونه کمکم کنه لطفا؟
مشکل این چیه؟
کد :
public class Chain_names
{
public string name;
public int Mols_no;
public class Mol_cl
{
public string name;
public int Atoms_no;
public class Atom_cl
{
public string name, X, Y, Z, XY, YZ;
}
public Atom_cl[] Atomm_cl = new Atom_cl[100];
}
public Mol_cl[] Moll_cl = new Mol_cl[100];
}
public Chain_names[] chainName = new Chain_names[1000];
پیغام خطا:
Object reference not set to an instance of an object.
می خوام اینطوری مقدار بدم:
chainName[0].name = "2RDF";
chainName[0].Mols_no = 200;
chainName[0].Moll_cl[0].name = "ALU";
chainName[0].Moll_cl[0].Atoms_no = 2000;
chainName[0].Moll_cl[0].Atomm_cl[0].name = "T";
chainName[0].Moll_cl[0].Atomm_cl[0].X= "1.02";
chainName[0].Moll_cl[0].Atomm_cl[0].Y = "1.25";
chainName[0].Moll_cl[0].Atomm_cl[0].Z = "2.00";
chainName[0].Moll_cl[0].Atomm_cl[0].XY = "0.75";
chainName[0].Moll_cl[0].Atomm_cl[0].YZ = "1.12";
اما نمی ذاره.:متفکر::ناراحت:
نقل قول: کلاسهای تو در تو یا Nested Class
سلام
اینطوری اصلاح شود :
publicclassChain_names
{
public Chain_names()
{
}
publicclassMol_cl
{
publicstring name;
publicint Atoms_no;
publicAtom_cl[] Atomm_cl = newAtom_cl[100];
publicclassAtom_cl
{
publicstring name, X, Y, Z, XY, YZ;
}
}
publicstring name;
publicint Mols_no;
publicMol_cl[] Moll_cl = newMol_cl[100];
}
publicChain_names[] chainName = newChain_names[1000];
privatevoid button1_Click(object sender, EventArgs e)
{
chainName[0] = newChain_names();
chainName[0].name = "2RDF";
chainName[0].Mols_no = 200;
chainName[0].Moll_cl[0] = newChain_names.Mol_cl();
chainName[0].Moll_cl[0].name = "ALU";
chainName[0].Moll_cl[0].Atoms_no = 2000;
chainName[0].Moll_cl[0].Atomm_cl[0] = newChain_names.Mol_cl.Atom_cl();
chainName[0].Moll_cl[0].Atomm_cl[0].name = "T";
chainName[0].Moll_cl[0].Atomm_cl[0].X = "1.02";
chainName[0].Moll_cl[0].Atomm_cl[0].Y = "1.25";
chainName[0].Moll_cl[0].Atomm_cl[0].Z = "2.00";
chainName[0].Moll_cl[0].Atomm_cl[0].XY = "0.75";
chainName[0].Moll_cl[0].Atomm_cl[0].YZ = "1.12";
}
نقل قول: کلاسهای تو در تو یا Nested Class
از راهنماییت ممنونم.
اما تو این کدی که نوشتی فقط تو خونه صفر از هر آرایه میشه مقدار داد. تو خونه های بعدی چی؟
برای هر خونه این کدها رو بنویسیم؟ نمیشه که.
chainName[0] = newChain_names();
chainName[0].Moll_cl[0] = newChain_names.Mol_cl();
chainName[0].Moll_cl[0].Atomm_cl[0] = newChain_names.Mol_cl.Atom_cl();
نقل قول: کلاسهای تو در تو یا Nested Class
یعنی هیچ کس نیست بتونه به من کمک کنه؟ :ناراحت:
نقل قول: کلاسهای تو در تو یا Nested Class
نقل قول:
نوشته شده توسط
mohammadmdp
یعنی هیچ کس نیست بتونه به من کمک کنه؟ :ناراحت:
البته خیلی واضح هست که نتوتی دیتا در این آرایه بریزی.
باید برای هر عنصر آرایه یک نمونه از کلاس بسازی
for (int i = 0; i < 10; i++)
{
Chain_names c = newChain_names();
c.name = "rr";
c.Mols_no = i;
chainName[i] = c;
}
بعدش این کلاسهای تو هم شما چه کار می خواهد برای شما انجام بدهد ، شما این 3 کلاس را جد از هم هم می نوشتی همینن چیزی که می خواستی میشد.
برای پر کردن این آرایه شما 2 تا آرایه تو در توی دیگر هم نیاز دارید.
نقل قول: کلاسهای تو در تو یا Nested Class
نقل قول:
نوشته شده توسط
linux
البته خیلی واضح هست که نتوتی دیتا در این آرایه بریزی.
باید برای هر عنصر آرایه یک نمونه از کلاس بسازی
for (int i = 0; i < 10; i++)
{
Chain_names c = newChain_names();
c.name = "rr";
c.Mols_no = i;
chainName[i] = c;
}
بعدش این کلاسهای تو هم شما چه کار می خواهد برای شما انجام بدهد ، شما این 3 کلاس را جد از هم هم می نوشتی همینن چیزی که می خواستی میشد.
برای پر کردن این آرایه شما 2 تا آرایه تو در توی دیگر هم نیاز دارید.
از راهنماییت ممنون. اما این کد مشکل منو حل نمیکنه.
من اصلا نمی فهمم.
شرح کلاسی که من می خوام اینه:
یه پروتئین یه اسم داره و چند تا زنجیره یا ( Chain ) که با این کاری نداریم.
اینو می خوایم از این کلاس
هر زنجیره اسمش چیه و چند تا مولکول داره و اسمهای مولکولها چیه.
بعد خود همین مولکول ها که هر کدوم یه اسم دارند چند تا اتم دارند و هر اتم هم یه اسم داره.
دوباره هر کدوم از این اتمها یه اسم دارند و چند متغیر برای تعیین موقعیت در فضا.
درست به همین ترتیب:
chainName[0].name = "A"; // اسم اولین زنجیره
chainName[0].Mols_no = 200; // تعداد مولکولهای اولین زنجیره
chainName[0].Moll_cl[0].name = "ALU"; // اسم اولین مولکول اولین زنجیره
chainName[0].Moll_cl[0].Atoms_no = 2000; // تعداد اتمهای اولین مولکول اولین زنجیره
chainName[0].Moll_cl[0].Atomm_cl[0].name = "T"; // اسم اولین اتم اولین مولکول اولین زنجیره
chainName[0].Moll_cl[0].Atomm_cl[0].X = "1.02"; // اولین اتم اولین مولکول اولین زنجیره X موقعیت
chainName[0].Moll_cl[0].Atomm_cl[0].Y = "1.25"; // ...
chainName[0].Moll_cl[0].Atomm_cl[0].Z = "2.00"; // ...
chainName[0].Moll_cl[0].Atomm_cl[0].XY = "0.75"; // ...
chainName[0].Moll_cl[0].Atomm_cl[0].YZ = "1.12"; // ...
نقل قول: کلاسهای تو در تو یا Nested Class