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

نام تاپیک: لطفا کمک کنید اشکال او.لین برنامه #C ام را رفع کنم

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    195

    لطفا کمک کنید اشکال او.لین برنامه #C ام را رفع کنم

    سلام
    من تازه چند ساعتی بیشتر نیست که با #C شروع کرده ام برای همین نمی دونم سئوالم را چطوری بیان کنم . فلذا شرح واقعه :

    1) یک کلاس به برنامه اضافه کردم


    using System;
    namespace ns_class_book
    {
    public class book
    {
    private string BookName,AuthorName;
    private float BookPrice;
    public string BN
    {
    get
    {
    return BookName;
    }
    set
    {
    BookName = value;
    }
    }
    public string AN
    {
    get
    {
    return AuthorName;
    }
    set
    {
    AuthorName = value;
    }
    }
    public float BP
    {
    get
    {
    return BookPrice;
    }
    set
    {
    if (value<100)
    {
    throw new Exception("به نظر شما این کتاب یه کمی ارزون نیست");
    }
    else
    if (value>100000)
    {
    throw new Exception("واو ! کتاب میخواهی بخری یا کتابخانه");
    }
    else
    BookPrice = value;

    }
    }
    public string BookDesc()
    {
    return BookName ;//+ " : " + BookPrice.ToString();
    }
    }
    }




    2) در فرم اصلی یک ArrayList ایجاد کردم:

    ArrayList ALBook = new ArrayList();



    3)کلاس تعریف شده به نام Book را ایجاد و مقدار دهی کردم سپس آن را داخل ArrayList ی که ساخته بودم (به نام ALBook) اضافه کردم

    book n_book = new book();
    n_book.BN = EdBookName.Text;
    n_book.AN = EdAuthorName.Text;
    n_book.BP = float.Parse(EdBookPrice.Text.Trim()&#4 1;;
    ALBook.Add(n_book);


    4) در آخر میخواهم یک تابع به شکل زیر بنویسم که یک مقدار خاص را درArrayListم
    جسیتجو کند ولی در یکی از فیلدهای هر Item های آن

    for (int i=0;i<ALBook.Count;i++)
    if (ALBook[i].BN ==_BookName)
    return i;
    return -1;


    ولی به ALBook[i].BN اشکال میگیرد و میگوید


    'object' does not contain a definition for 'BN

    لطفا کمک کنید مشکل را حل کنم

  2. #2
    کاربر دائمی آواتار Farhad-Csharp
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    تهران
    پست
    119
    اگر چند روز با سی شارپ کار می کردی چی میخواستی بپرسی؟
    زیر دیپلم صحبت کن .

  3. #3
    اگه میتونی کد کامل برنامتو یکجا بگذار ببینمش شاید بتونم کمکت کنم.

  4. #4
    مقدار ALBook[i] باید به book تبدیل نوع (Type Cast) بشه. متاسفانه نمی دونم در #C چطور این کار انجام میشه. اگه دلفی بود:

    book(ALBook[i]).BN


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    195
    اول از همه تشکر میکنم
    :flower:

    ولی تو این چند ساعت کار با #C فهمیدم که اونهایی که با دلفی کار میکنند باید قدر اون را خوب بدونند

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


    for (int i=0;i<ALBook.Count;i++)
    { book b1 = (book) ALBook[i];
    if (b1.BN == _BookName)
    {
    b1 = null;
    return i;
    }

    }
    //b1 = null;
    return -1;


  6. #6
    کاربر تازه وارد آواتار small_programmer
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    تهران
    پست
    81
    در پیرو صحبتهای آقای کشاورز از این استفاده کن

    ((book)ALBook[i]).BN

    جالبه
    اگر چند روز با سی شارپ کار می کردی چی میخواستی بپرسی؟
    توصیه:سعی کن نام پراپرتی ها را کامل و روشن بنویسی تا فیلدهای خصوصی را
    :موفق:

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

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