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

نام تاپیک: مقداردهی یک متغیر در دو تابع سازنده درسته؟

  1. #1
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    مقداردهی یک متغیر در دو تابع سازنده درسته؟

    آیا راهی غیر از اینکار وجود داره؟ حس می کنم درست نیست

    private int id { get; set; }
    public int code { get; set; }
    public bool blacklist { get; set; }


    public persons(int id, int code,bool blacklis)
    {
    this.id = id;
    this.code = code;
    this.blacklist = blacklist;


    }


    public persons(int id)
    {
    this.id = id;
    }

  2. #2

    نقل قول: مقدار دهی یک متغییر در دو تابع سازنده درسته؟

    نقل قول نوشته شده توسط aliramazani مشاهده تاپیک
    آیا راهی غیر از اینکار وجود داره؟ حس می کنم درست نیست

    private int id { get; set; }
    public int code { get; set; }
    public bool blacklist { get; set; }


    public persons(int id, int code,bool blacklis)
    {
    this.id = id;
    this.code = code;
    this.blacklist = blacklist;


    }


    public persons(int id)
    {
    this.id = id;
    }
    سلام
    درسته
    منتها چون اصل برنامه نویسی اینه که کد یه جا تعریف و در جاهای دیگه فراخونی بشه ، بهتره که از متد سازنده ، اون اورلود متد سازنده ی کامل تر رو فراخونی کنید و بقیه ی مقادیر رو حالا اگه خواستید بدین یا اینکه مقدار پیش فرض بذارید :


    private int id { get; set; }
    public int code { get; set; }
    public bool blacklist { get; set; }




    public persons(int id, int code, bool blacklis)
    {
    this.id = id;
    this.code = code;
    this.blacklist = blacklist;
    }




    public persons(int id) : this(id, 0, false)
    {
    }

  3. #3
    مدیر بخش آواتار mmd2009
    تاریخ عضویت
    فروردین 1403
    محل زندگی
    تهران
    پست
    2,393

    نقل قول: مقدار دهی یک متغییر در دو تابع سازنده درسته؟

    با سلام.

    از Optional Parameters هم میتونید استفاده کنید ، بدین صورت :


    public class persons
    {
    private int id { get; set; }
    public int code { get; set; }
    public bool blacklist { get; set; }

    public persons(int id, int code = 0, bool blacklist = false)
    {
    this.id = id;
    this.code = code;
    this.blacklist = blacklist;
    }
    }


    و برای فراخوانی نیز بدین گونه عمل کنید :


    persons persons = new persons(id: 1);


    موفق باشید

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


  4. #4
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: مقدار دهی یک متغیر در دو تابع سازنده درسته؟

    یه سوال دیگه
    ببینید اینجا برای blackList که یک متغیر از نوع boolean هستش مقدار false یا true را در نظر گرفتیم.
    حالا اگر متغیر ما از نوع byte[] باشه باید برای تهی کردنش چی بنویسیم؟
    مثلا پراپرتی اینطور:

    private byte[] picture { get; set; }

    public persons(int id, int code = 0, bool blacklist = false,byte[]picture?????)
    {
    this.id = id;
    this.code = code;
    this.blacklist = blacklist;
    }


  5. #5
    مدیر بخش آواتار mmd2009
    تاریخ عضویت
    فروردین 1403
    محل زندگی
    تهران
    پست
    2,393

    نقل قول: مقدار دهی یک متغیر در دو تابع سازنده درسته؟

    ببینید در مثال قبلی ما عمل "تهی" کردن رو برای مقادیر اولیه آرگومان ها استفاده نکردیم بلکه مقادیر default رو به آرگومان های سازنده دادیم. یعنی اگر مثال بالا رو اینطوری هم می نوشتیم مشکلی وجود نداشت :


    public persons(int id, int code = default(int), bool blacklis = default(bool))
    {
    this.id = id;
    this.code = code;
    this.blacklist = blacklis;
    }


    ولی برای آرایه ای از بایت ها ( []byte ) اوضاع فرق میکنه ، یعنی شما میتونید بدین دو صورت بنویسید :


    byte[] picture = null
    or
    byte[] picture = default(byte[])


    در هر دوحالت مقدار null به picture اختصاص داده می شود.

    موفق باشید

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


  6. #6
    مدیر بخش آواتار mmd2009
    تاریخ عضویت
    فروردین 1403
    محل زندگی
    تهران
    پست
    2,393

    نقل قول: مقداردهی یک متغیر در دو تابع سازنده درسته؟

    نکاتی در مورد سی شارپ 7.1 رو یادآور بشم ، اگر با سی شارپ 7.1 کار کنید برای Optional Parameter Default Value به جای :


    public persons(int id, int code = default(int), bool blacklis = default(bool))


    می توانید بنویسید :


    public persons(int id, int code = default, bool blacklis = default)


    و همچنین برای Local Variable Defaults میتونید به این صورت عمل کنید :


    byte[] picture = default


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

    موفق باشید

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


تاپیک های مشابه

  1. ضرب دو مقدار و ریختن در یک متغیر در استورد پروسیجر
    نوشته شده توسط jafarpalideh در بخش T-SQL
    پاسخ: 7
    آخرین پست: پنج شنبه 19 تیر 1393, 15:37 عصر
  2. پاسخ: 1
    آخرین پست: جمعه 08 مهر 1390, 20:34 عصر
  3. سوال: استفاده از یک متغیر در دو محل (مشکل فوری)
    نوشته شده توسط araz_s در بخش C#‎‎
    پاسخ: 7
    آخرین پست: دوشنبه 25 مرداد 1389, 03:02 صبح
  4. نسبت دادن خروجي يك تابع جاوااسكريپت به يك متغير در aspx.vb
    نوشته شده توسط p_adibi در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: شنبه 17 اسفند 1387, 09:46 صبح
  5. افزایش یک متغیر توسط دو thread به صورت منظم؟؟؟
    نوشته شده توسط sfm_designer در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 06 اردیبهشت 1384, 22:46 عصر

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

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