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

نوع داده struct در سی شارپ - بخش اول - کلیک سایت


نوع داده  ساختمان ( struct) در سی شارپ

قسمت اول

در این مقاله قصد داریم تا با نوع داده ساختمان ( struct) در سی شارپ آشنا شویم . نوع داده ساختمان ( struct) در سی شارپ زیر مجموعه نوع داده مقدار (value type) است و نوع داده ای است که می تواند توسط برنامه نویس در زبان برنامه برنامه نویسی سی شارپ تعریف شود. هر نوع ساختمان ( struct) در سی شارپ ساختاری است ، که در آن می تواند مجموعه ای از مقادیر و متد ها  نگهداری شود. از این جنبه از تعریف، نوع داده ساختمان ( struct) بسیار نزدیک به تعریف نوع داده کلاس (class) در سی شارپ است ، اما با این تفاوت اساسی که نوع داده ساختمان ( struct) در سی شارپ از نوع داده مقدار (value type) است و نوع داده کلاس (class) از نوع داده مرجع (reference type) است. در ادامه با توضیح بیشتر سعی می کنیم با نوع داده ساختمان (struct) در سی شارپ بیشتر آشنا شویم .

 

 تعریف نوع داده ساختمان (struct) در سی شارپ

از ساختار نوع داده ساختمان (struct) در سی شارپ برای ایجاد متغیری که در آن داده هایی ، با نوع داده های متفاوت اما مرتبط با یکدیگر نگهداری شود، استفاده می شود .

 الگوی نوع داده ساختمان (struct) در سی شارپ

struct  StructName
{
Data Members>>
Functions>>
}

مثال: تعریف ساده از نوع داده ساختمان (struct) در سی شارپ  

struct Book
        {
            string bookName;
            string Author;
            decimal Price;
            int publishYear;
        }

در این مثال با تعریف نوع داده ساختمان book ، اطلاعات متفاوت با انواع داده متفاوت (string , int ,decimal) مربوط به book در یک ساختار جمع شده است.

نکته

در تعریف یک ساختمان (struct) می تواند فیلد ها ، متد ها ، Indexer ، و رخداد ها (event) ، خصوصیات (property)  تعریف شوند.


مثال : تعریف یک ساختمان (struct) با استفاده از متد و property

  

 struct Book
        {
            string bookName;
            string Author;
           
            int publishYear;
            int pageCount;

            public decimal  price 
                { get; set; }
   
             public  bool IsExpensive()
            {
                if (price > 50)
                    return true;
                else
                    return false;
            } 
        }

مثال 2 :تعریف یک ساختمان با استفاده از متد و property

    

struct rectangle
        {
            private decimal Pwidth;
            private decimal Pheight;
                   

            public decimal width
            {
                get
                {
                    return Pwidth;
                }
                set
                {
                    Pwidth = value;
                }
            }
            public decimal height
            {
                get
                {
                    return Pheight;
                }
                set
                {
                    Pheight = value;
                }
            }
            public decimal area()
            {
               return  (width + height) * 2;
            }
        }

در مثال اول نوع داده ساختمان (struct) با نام Book ، با یک خصوصیت و یک متد تعریف شده است و در مثال دوم ، نوع داده ساختمان rectangle با دو خصوصیت و یک متد تعریف شده است.

 

استفاده از نوع داده ساختمان (struct) در سی شارپ

مثال : استفاده از نوع داده ساختمان (struct) در سی شارپ :

 

 static void Main(string[] args)
        {
            Book obook = new Book();
            obook.bookName = "image processing";
            obook.Author = "Gpnzaleze woods ";
            obook.price = 30000;
            Console.WriteLine("book name= " + obook.bookName + " Author= " + obook.Author);
           
}

در این مثال نوع داده ساختمان (struct) با نام Book که در مثال قبل تعریف شده است ، یک نمونه از آن ساخته شده و مقدار دهی شده است. خروجی قطعه کد بالا به صورت زیر خواهد بود :

book name= image processing Author= Gpnzaleze wood

مثال : فراخوانی متد در نوع داده ساختمان (struct) در سی شارپ :

  

   static void Main(string[] args)
        {
            rectangle orectangle = new rectangle();
            orectangle.height = 100;
            orectangle.width = 200;

            Console.WriteLine("area of rectangle= " + orectangle.area().ToString());

        }

در این مثال پس از مقدار دهی دو خصوصیت تعریف شده در نوع داده ساختمان (struct) با نام rectangle ، با فراخوانی متد area مساحت نمونه ایجاد شده محاسبه و نمایش داده می شود. خروجی قطعه کد بالا به صورت زیر خواهد بود :

area of rectangle= 600

 

ایجاد یک نمونه از نوع داده ساختمان (struct) در سی شارپ

ایجاد نمونه از نوع داه ساختمان  (struct) در سی شارپ می تواند بدون  استفاده از کلمه new یا با استفاده از کلمه new صورت بگیرد. زمانیکه از کلمه new  استفاده نمی کنیم از انجا که سازنده فراخوانی نمی شود، مقدار دهی اولیه متغیر ها در ساختمان نیز صورت نمی گیرد و همین طور مقدار حافظه مصرفی نیز کمتر خواهد بود .

مثال :  ساخت نمونه از نوع داده ساختمان (struct) با استفاده از سازنده ( با استفاده از کلمه new )

class Program
    {
        struct rectangle
        {
            private decimal Pwidth;
            private decimal Pheight;

            public rectangle(decimal W, decimal H)
            {
                Pwidth = W;
                Pheight = H;

            }
                   
            public decimal area()
            {
               return  (Pwidth + Pheight) * 2;
            }
        }

        static void Main(string[] args)
        {
            rectangle orectangle = new rectangle(20, 30);


            Console.WriteLine("area of rectangle= " + orectangle.area().ToString());

        }
}   

در این مثال از آن جاکه در تعریف متغیر orectangle ، از سازنده استفاده شده است ، مقدار دهی متغیر ها در نوع داده ساختمان (struct) در زمان تعریف متغیر orectangle ، با استفاده از سازنده انجام شده است.

مثال : ساخت نمونه از نوع داده ساختمان (struct) بدون سازنده

        

    public rectangle(decimal W, decimal H)
            {
                Pwidth = W;
                Pheight = H;

            }

       
            public decimal area()
            {
               return  (Pwidth + Pheight) * 2;
            }
        }
        static void Main(string[] args)
        {
            rectangle orectangle ;
            orectangle.Pwidth = 20;
            orectangle.Pheight =30;


            Console.WriteLine("area of rectangle= " + orectangle.area().ToString());

        }  

در این مثال از آن جاکه در تعریف متغیر orectangle ، از سازنده استفاده نشده است ، مقدار دهی متغیر ها در نوع داده ساختمان (struct) ، بعد از تعریف متغیر orectangle انجام شده است.

خروجی در هر دو مثال بالا برابر است با :

area of rectangle=100

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

 

فصلِ: 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 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید