مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

Class ها در سی شارپ - Static members قسمت نهم


اعضای کلاس ( class members)

قسمت نهم

در این مقاله قصد داریم تا با اعضای نوع داده کلاس در سی شارپ آشناتر شویم.

در سری مقالات قبلی مربوط به نوع داده کلاس در سی شارپ ، با تعریف کلاس (class) و شی (object) بحث را شروع کردیم و سپس به تعریف سازنده (constructor) و انواع آن پرداختیم . سپس کلاس استاتیک (static class) و اعضای استاتیک (static members) را تعریف کردیم. در این مقاله قصد داریم تا با معرفی اعضا (members) ، در نوع داده کلاس در سی شارپ ، این سری از مقالات مربوط به نوع داده کلاس در سی شارپ را ادامه بدهیم .

اعضای کلاس ( class members)

وظیفه اصلی اعضای کلاس مشخص کردن داده (data) و رفتار (behavior) در کلاس است. ( در ساختمان نیز ، همانطورکه در مقالات قبلی صحبت شد اعضای ساختمان ، همین وظیفه را دارند.). و تمام اعضایی که در بدنه کلاس تعریف می شوند و آنچه در بدنه این اعضا تعریف می شود همگی  اعضای(members) نوع داده کلاس در سی شارپ  ، را تشکیل می دهند. اعضای نوع داده کلاس ( class members ) شامل موارد زیر هستند :

  1. فیلد ها (fields)
  2. ثابت ها(constants)
  3. خصوصیات (properties)
  4. متد ها (methods)
  5. رخدادها (events)
  6. عملگر ها (operations)
  7. ایندکسر ها (indexers)
  8. سازنده ها  (constructors)
  9. مخرب ها  (finalizers)
  10. نوع داده های تو در تو (nested type)

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

  1. فیلد ها (fields) :

فیلد ها در نوع داده کلاس در سی شارپ ( و همین طور در نوع داده ساختمان ) ، متغیر هایی هستند که می توانند از هر نوع داده ای باشند و به صورت استاتیک (static) و یا غیر استاتیک (none static) مستقیما در بدنه کلاس تعریف می شوند. تفاوت فیلد استاتیک و غیر استاتیک نیز همانطور که در مقاله قبلی اشاره شده در این است که متغیر غیر استاتیک به شی (object) تعلق دارد و در نتیجه مقدار آن در هر شی می تواند متفاوت باشد و تاثیری از یکدیگر نمی گیرند در حالیکه متغیر  استاتیک به کلاس تعلق دارد و مقدار آن بین تمامی اشیا مشترک خواهد بود.

نکته :

به طور کلی بهتر این است که ، متغیر هایی که به صورت مستقیم در بدنه کلاس تعریف می شوند ( فیلد ها) ، با سطح دسترسی حفاظت شده (protected) و یا خصوصی (private) تعریف شوند و متغیر ها با دسترسی عمومی (public)  را در قالب خصوصیات (properties) ، متد ها (methods) و یا ایندکسر ها (indexers) تعریف کنیم. این کار باعث می شود تا اعتبار سنجی داده های ورودی راحت تر  باشد .

 

الگوی تعریف فیلد در بدنه کلاس(access Level   type  field Name)

access Level  : سطح دسترسی فیلد را  مشخص می کند.  شامل : public , private , protected , internal , private protected ( در مقالات بعدی در رابطه با سطح دسترسی  صحبت خواهد شد. ).

type   : نوع داده متغیر فیلد را مشخص می کند.

field Name  : نام فیلد را مشخص می کند .

مثال :

 

   public class rectangle

    {  
       // private fied

        private double width;


        // public  field (it is not recommended ( an public field))

        public double height=10;



        // public prpoerty relatecd to  private field (width) , which control input data validation

          public double Width
         {
            get
            {
                return width;
            }

            set
            {
                if (value > 0)

                    width = value;
                else
                    throw new ArgumentOutOfRangeException();
            }  
         }

        public rectangle ()

        {
            height = 30;
        }     

        public  double area()

        {  
            return (width + height) * 2;
        }      

     }

 

در مثال بالا در بدنه کلاس rectangle ، دوتا فیلد تعریف شده است. یکی با سطح دسترسی خصوصی (private) و دیگری با سطح دسترسی عمومی (public). برای فیلد با دسترسی خصوصی با نام width ، یک خصوصیت (property) تعریف شده است که در آن ، مقدار ورودی برای این فیلد اعتبار سنجی می شود . اما برای داده ورودی متعلق به فیلد height با دسترسی عمومی ، هیچ اعتبار سنجی صورت نمی گیرد که این می تواند احتمال بروز خطا را بالا ببرد .

دسترسی به مقادیر فیلد

برای دسترسی به مقادیر فیلد های غیراستاتیک (none static fields) بعد از نام شی علامت ‘.’ قرار می دهیم و بعد از آن نام فیلد را می نویسم و برای فیلد های استاتیک (staticfields) نیز به همین روش عمل می شود با این تفاوت که به جای استفاده از نام شی ، از نام کلاس استفاده می شود .

 مثال : دسترسی  به فیلد height در کلاس rectangle که دربالا تعریف شده است

class Program

    {
        static void Main(string[] args)

        {
            rectangle oRectangle1 = new rectangle();
            oRectangle1.height = 20;  
        }

    }

نکته :

اگر در بدنه کلاس در زمان تعریف فیلد، به آن مقدار پیش فرض بدهیم ( این مقدار در مثال بالا 10 است ) و همان متغیر در سازنده نیز مقدار بگیرد ( این مقدار در مثال بالا 30 است ) ، به صورت خودکار ، ابتدا مقدار پیش فرض که در زمان  تعریف فیلد به آن انتساب داده شده است در آن قرار می گیرد و سپس مقدار  انتساب داده شده درسازنده (constructor) ، در ان بازنویسی (overwrite) می شود.

گرداوری :سمانه وزیریان

فصلِ: 1 , تعداد قسمت ها: 9 , سطح: صفر تا صد
موضوعات: آموزش سی شارپ

این فصل در یک نگاه:

آموزش ارسال پیامک، آموزش ارسال پیامک تکی و گروهی ، ارسال پیامک به صورت اختصاصی برای هر مشترک، دریافت پیامک، مشاهده وضعیت…

توضیحات کلی مجموعه:   آیا می دونید قیمت نرم افزارهای مدیریت پیامک در حدود 150 هزار تومان است؟ اما توسط این دوره شما میتونید با مبلغ بسیار کمتر یک نرم افزار مدیریت پیامک رو به صورت کاملا حر…
فصلِ: 9 , تعداد قسمت ها: 59 , سطح: صفر تا صد
موضوعات: آموزش سی شارپ

این فصل در یک نگاه:

در این فصل که فصل پایانی این دوره می باشد در مورد نحوه ساختن فایل نصبی سریع یا همان quick installer که روش پیشنهاد شده م…

توضیحات کلی مجموعه: پس از بازخوردهای بسیار خوبی که از دوره های آموزش برنامه نویسی سیستم اتوماسیون اداری و آموزش برنامه نویسی سیستم فروش و انبارداری مشاهده کردیم، تصمیم گرفتیم با توجه به درخ…
فصلِ: 13 , تعداد قسمت ها: 120 , سطح: صفر تا صد
موضوعات: آموزش سی شارپ

این فصل در یک نگاه:

در این فصل که فصل آخر از مجموعه بزرگ آموزش سیستم اتوماسیون اداری می باشد در ابتدا در مورد اسناد و نامه های خارج از سازما…

دوره صفر تا صد  آموزش برنامه نویسی و پیاده سازی سیستم اتوماسیون اداری تحت شبکه. (توصیه می شود دومی مجموعه را حتما ببینید) امروزه اطلاعات یکی از مهمترین و با ارزشترین منابع هر اداره و یا ساز…
فصلِ: 4 , تعداد قسمت ها: 14 , سطح: مقدماتی

این فصل در یک نگاه:

توضیح تنظیمات گرافیک و صدا در یونیتی پیاده سازی منو ها …

به نام خدا   بازی‌سازی یک حرفه بسیار جذاب است و تبدیل شدن به یک بازی‌ساز حرفه‌ای آرزوی همه ماست. اینکه بتوانیم دنیای خاصی خلق کنیم و در این دنیا قوانین خود را پیاده کنیم، همیشه ما را به وج…
فصلِ: 11 , تعداد قسمت ها: 92 , سطح: صفر تا صد

این فصل در یک نگاه:

اجرای سیستم روی سیستم، قرار دادن سیستم روی سرور، تعریف Connetion String، آشنایی با فایل App.config، ساخت رشته اتصال به ص…

مهمترین تکنولوژیهای استفاده شده در این دوره پروژه محور (سیستم فروش کالا و انبارداری) طراحی گرافیکی به روش WPF (Windows Presentaion Foundation) آموزش کامل برنامه نویسی xaml (برای طراحی های …
فصلِ: 5 , تعداد قسمت ها: 25 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل پنجم…

توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید