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

نام تاپیک: مشکل در کار با آرایه ای از یک کلاس

  1. #1
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    Question مشکل در کار با آرایه ای از یک کلاس

    من یک کلاس دارم که چندتا متغیر و چند تا تابع واسه مقدار دهی و مقدار گیری داره
    وقتی که یک آرایه از این کلاس تعریف میکنم و میخوام مثلا به یکی از اعضای آرایه مقدار بدم ( با تابعی که تو کلاس تعریف کردم ) یه runtime error میده : Object reference not set to an instance of an object
    آرایه تو کلاس Form تعریف شده و اینجوری پیاده شده :
    myArray[x,y].setBoolValue( true)

  2. #2

    Smile

    با سلام به دوست خوبم.
    با بررسی کد زیر و اشتباهی که در این تصحیح شده، امیدوارم بتونم کمکت کنم.

    namespace
    ConsoleApplication1
    {
    class X//*01
    {
    //*02
    #region a
    private int _a;
    ///<summary></summary>
    publicint a
    {
    get { return _a; }
    set { _a = value; }
    }
    #endregion
    }
    class Program
    {
    static void Main(string[] args)
    {
    X[] xes = new X[10];//*03
    foreach (X x in xes)
    x.a = 5;
    //*04
    foreach (X x in xes)
    {
    x =
    new X();//*05
    x.a = 5;//*06
    }
    }
    }
    }

    در بالا یه کلاس ایجاد شده(*01) به نام X که حاوی یه prpperty هست (*02) به نام a.
    در کلاس program، یه آرایه ازش ساختم(*03) به نام xes. بعدم به a تمام عناصر xes مقدار 5 رو دادم(*04). ولی...
    ولی این استباهه. من آرایم رو ساختم، ولی عناصر آرایه رو که مقداردهی نکردم. یعنی تو pointer به کلاسهایی که هنوز ساخته نشدن ایجاد کردم. خوب pointer خالی که به درد نمی‏خوره. پس برنامه Error می‏ده و متوقف می‏شه. اگه قبل از قسمت (*04)، قسمت (*05) رو بزاریم تا تک‏نک عناصر Initialize بشن، یعنی کلاسها ایجاد بشن و به pointerها نسبت داده‏بشن، مشکل حل می‏شه.
    موفق باشید.

  3. #3

  4. #4

  5. #5
    private int _a;
    ///<summary></summary>
    publicint a
    {
    get { return _a; }
    set { _a = value; }
    }

    احتمالا به این قسمت توجه نکردید!

  6. #6
    توجه دارید که قسمت foreach در (*04) باید حذف بشه و فقط محض اطلاع، اینجا آوردمش.

  7. #7

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

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