نمایش نتایج 1 تا 7 از 7

نام تاپیک: کلاسهای تو در تو یا Nested Class

  1. #1

    Unhappy کلاسهای تو در تو یا 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";

    اما نمی ذاره.

  2. #2
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: کلاسهای تو در تو یا 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";
    }

  3. #3

    نقل قول: کلاسهای تو در تو یا 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();


  4. #4

    نقل قول: کلاسهای تو در تو یا Nested Class

    یعنی هیچ کس نیست بتونه به من کمک کنه؟

  5. #5
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

    نقل قول: کلاسهای تو در تو یا 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 تا آرایه تو در توی دیگر هم نیاز دارید.

  6. #6

    نقل قول: کلاسهای تو در تو یا 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"; // ...


  7. #7

    نقل قول: کلاسهای تو در تو یا Nested Class

    یکی کمک لطفا

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •