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

نام تاپیک: دستور{} get و {} set در #c یعنی چه؟

  1. #1

    دستور{} get و {} set در #c یعنی چه؟

    دستور{} get و {} set در #c یعنی چه؟
    کجاها کاربرد داره و اگه میشه یک مثال ساده بزنید؟

  2. #2

    نقل قول: دستور{} get و {} set در #c یعنی چه؟

    حسن اینا خطرناکن حسن
    ببین اینا واسه مقدار دهی و پس دادن یه مقدار تحت عنوان خصوصیت یه شی استفاده میشه
    مثالش تو فرم بنویس this.BackGroundColor

  3. #3
    کاربر دائمی
    تاریخ عضویت
    دی 1390
    محل زندگی
    جویبار
    پست
    108

    نقل قول: دستور{} get و {} set در #c یعنی چه؟

    ببین دوست عزیز تو مبحث شئ گرایی از SET , GET برای خواندن و بازگرداندن اطلاعات به جای دستورات ورودی و خروجی مثلا تو محیط کنسول console.readline و . . . استفاده میشه ، دستور زیر رو ببین دو متغییر x , y رو با SET , get تنظیم میکنیم و Area مساحت رو برمیگردونه(دستورات زیر رو تو یه کلاس قرار میدیم)

    int x, y;
    public int X
    {
    get
    {
    return x;
    }
    set
    {
    x = (value > 0) ? value : 0;
    }
    }
    public int Y
    {
    get
    {
    return y;
    }
    set
    {
    y = (value > 0) ? value : 0;
    }
    }
    public int Area()
    {
    return x * y;
    }
    public string PrintDistance()
    {
    string result = "Rectangle Area :" + Area().ToString();
    return result;
    }

    حالا میتونی به این شکل از دستورات بالا استفاده کنی :

    static void Main(string[] args)
    {
    // rectangle
    Rectangle r1 = new Rectangle();
    Console.Write("Enter Rectangle X :");
    r1.X = Convert.ToInt32(Console.ReadLine());
    Console.Write("Enter Rectangle Y :");
    r1.Y = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine(r1.PrintDistance());
    Console.ReadKey();
    }

    امید وارم تونسته باشم منظور رو رسونده باشم

  4. #4

    نقل قول: دستور{} get و {} set در #c یعنی چه؟

    یه مثال کاربردی دیگش اینه که شما یه یوزرکنترل ساختی و اگه بخوای یه property جدید براش مشخص کنی باید خوب این ویژگی رو براش تعریف کنی. مربوط میشه به شی گرایی که برای این منظور از get و set استفاده میکنی. قبل تعریف کردن اون ویژکی باید یه فیلد با دسترسی private تعریف کنی و بعدش این property رو public تعریف کنی

  5. #5

    نقل قول: دستور{} get و {} set در #c یعنی چه؟

    سلام

    یکی از اعمال معمول در برنامه نویسی شی گرا encapsulation است، که در برانه نویسی برای دو موقعیت بکار میره:

    1. یک مکانیزم برای محدود کردن دسترسی به ویژگی ها و کارکردهای داخلی اشیا (مثلا تعریف کلاس ها و استراک ها در C#‎)
    2. یک روش برای اعمال محدودیت و کنترل در دسترسی به صفات اشیا (که موضوع این تاپیکه)

    get و set روش زبان C#‎ برای پاسخ گویی به این نیاز برنامه نویسی هست. از قدیم (و هنوزم) در برنامه نویسی C++‎ و c این یک کار خوب محسوب میشد که به جای دسترسی مستقیم به متغییر های یک شی بیان اون متغییر رو private کنن و دو تابع بنویسن برای خواند و نوشتن اون متغییر، حالا C#‎ این ویژگی رو خیلی تمیزتر با property ها پیاده سازی کرده. property ها در واقع دو متد هستند یعنی اگه یه property با متد get و set بنویسی و کامپایل کنی بعد کد IL اونو بخونی میبینی که کامپایلر دو تابع برای اون property تولید کرده و سازه ای به نام property تو کد میانی نیست.
    پس در واقع property مثل یک متغییر عمل میکنه ولی قدرت یک تابع رو داره.


    چند نمونه از جاهایی که استفاده میشه:

    • کلا بجای متغییر ها خوبه که از property استفاده کنیم، مگر اینکه کد با performance خیلی خیلی بالا داریم مینویسیم، حدس بزنین چرا؟ :-)
    • وقتی میخواییم یک متغیرمون از بیرون فقط خواندنی یا فقط نوشتنی باشه، که خیلی اتفاق میفته
    • میخواییم وقتی متغییری تغییر کرد مطلع بشیم و کارهای دگه ای هم بکنیم، مثلا اگر متغییر IP عوض شد تابع ReConnect() رو هم صدا بزنیم

  6. #6

    نقل قول: دستور{} get و {} set در #c یعنی چه؟

    سلام
    من تا حدودی منظور شما رو فهمیدم. کد زیر مثال یک تیر هست که وقتی ایجاد شد با شمت بالا حرکت میکنه و وقتی به بالای فرم برخورد میکنه حذف میشه.
    من می خوام بدونم توی این کد گت و یت چی کار می کنند؟؟

    public partial class Tir : UserControl
    {
    public int Speed
    {
    get { return timer1.Interval; }
    set
    {
    if (value > 0)
    timer1.Interval = value;
    }
    }
    private bool state = true;
    public bool State
    {
    get { return state; }
    }
    public Tir()
    {
    InitializeComponent();
    timer1.Start();

    }

    private void timer1_Tick(object sender, EventArgs e)
    {
    Location = new Point(Location.X, Location.Y - 1);
    if (Location.Y < 0)
    {
    timer1.Stop();
    Hide();
    state = false;
    }
    }

  7. #7

    نقل قول: دستور{} get و {} set در #c یعنی چه؟

    ببین اگه یه ویژگی فقط get داشته باشه اون موقع اون ویژگی فقط حالت خواندنی داره و اگه فقط set داشته باشه فقط حالت نوشتنی داره و اگه دو تاش رو داشته باشه دیگه خودت حدس بزن
    تو این کد state یه فیلد هست و State یه ویژگی/ و ویژگی Speed هم که تابلو برا سرعت حرکت تیر هست که در واقع اینتروال تایمرا ست میکنه

  8. #8

    نقل قول: دستور{} get و {} set در #c یعنی چه؟

    ببخشید یه سوال دیگه از کد مربوط به تیر:
    توی این کد استارت تایمر رو توی قسمت InitializeComponent(); نوشت.
    چه وقتایی ما می تونیم کدهامون رو توی اسن قسمت بنویسیم؟؟؟

  9. #9
    کاربر دائمی آواتار abdullah20
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    1,211

    نقل قول: دستور{} get و {} set در #c یعنی چه؟

    نقل قول نوشته شده توسط hasan1500 مشاهده تاپیک
    ببخشید یه سوال دیگه از کد مربوط به تیر:
    توی این کد استارت تایمر رو توی قسمت InitializeComponent(); نوشت.
    چه وقتایی ما می تونیم کدهامون رو توی اسن قسمت بنویسیم؟؟؟
    به این قسمت میگن constructors
    حالا constructors چیست؟
    constructors یک تابع همنام با نام کلاس است
    گاهی لازم است در هنگام تعریف یک شی از کلاس عملیات خواصی انجام شود مثلا متغیری مقدار اولیه بگیرد در این گونه موارد ما از constructors استفاده میکنیم

  10. #10

    نقل قول: دستور{} get و {} set در #c یعنی چه؟

    سازنده ها وقتی صدا زده میشه که برای یه کلاس که تعریف کردی مثل Class1 ss; بیای با new حافظه بگیری یعنی Class1 ss=new Class1(); . با این کار سازنده پیش فرض کلاس صدا زده میشه. سازنده نوع خروجی نداره. در واقع تابع همنام با اسم کلاس رو میگن. میتونی سازنده ها رو آورلود کنی. یعنی مثل دستور messagebox.show() که میتوی هر باز چند پارامتر بهش بدی. به این کار میگن سربار گذاری توابع. این کار بر اساس تعداد پارامترها و نوع پارامترها انجام میشه. فکر کنم بر اساس مقدار خروجی توابع هم بشه ولی مطمئن نیستم. از دوستان عزیز راهنمایی میگیرم تو این زمینه.
    برای این تایمر رو تو سازنده استارت کرده که وقتی چند تا شی Tir ساختی مثلا 10 تا نیای جدا جدا هر کدومش رو استارت کنی

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

  1. موارد استفاده از get و set
    نوشته شده توسط در بخش C#‎‎
    پاسخ: 14
    آخرین پست: چهارشنبه 21 خرداد 1393, 12:49 عصر
  2. DBIsam یعنی چه؟
    نوشته شده توسط nasr در بخش برنامه نویسی در Delphi
    پاسخ: 7
    آخرین پست: چهارشنبه 24 خرداد 1385, 11:26 صبح
  3. هر سرور برای خودش یک پورت مخصوص داره یعنی چه؟
    نوشته شده توسط zizi_zizi69 در بخش شبکه و Networking‌
    پاسخ: 6
    آخرین پست: پنج شنبه 19 آذر 1383, 12:48 عصر
  4. cross paltform یعنی چه؟
    نوشته شده توسط Looker در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 22 شهریور 1382, 14:41 عصر

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

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