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

بررسی انواع داده ها در سی شارپ - توضیحات کامل


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

  • انواع مقداری (value type)
  • انواع مرجعی (reference type)

تفاوت اصلی بین این دو نواع داده در سی شارپ در نحوه ذخیره سازی انها در حافظه است. برای روشن تر شدن مساله، این را می توان گفت که متغیر هاای که از نوع value type تعریف می شوند مستقیما یک مقدار را در حافظه نگهداری می کنند در حالیکه متغیر هایی که از نوع reference type تعریف می شوند آدرس یک مقدار در حافظه را ذخیره می نمایند. از این رو در انتساب با مقدار ، از انجاکه در واقع یک مقدار جدید در متغیرجدید ذخیره می شود، در نتیجه هر متغیر یک کپی مجزا از یک مقدار را برای خود دارد و تغییر در متغیر انتساب دهنده و گیرنده تغییری در هیچ یک ایجاد نمی کند. ( البته بجز مواقعی که از کلمه کلیدی ref و out  استفاده می کنیم که در مقالات بعدی در مورد آن صحبت خواهیم کرد ).  اما در انتساب متغیر  هایی از نوع reference چون ادرس داده در متغیر جدید کپی می شود و هر دو متغیر به یک مقدار اشاره می کنند تغییر در هر یک باعث تغییر در دیگری می شود.

انواع reference type در نوع داده در سی شارپ تقسیم می شود به :

  • Class type: : در این نوع داده در سی شارپ یک ساختار شامل متغیر ها متدها و داده ها ذخیره می شود. این نوع داده می تواند توسط کاربر تعریف شود یا جزو تعاریف پیش فرض زبان باشد مثل نوع داده  string و object.

مثال : تعریف یک کلاس

namespace datatype

{ 
    public class person
{
  
        public string name { get; set; }
        public string identityNumber { get; set; }

        public string print()
    {
        return "name=" + name + " " + " identityNumber=" + identityNumber;

    }

}
    class Program
    {
        static void Main(string[] args)
        {
            
            person operson = new person();
            operson.name = "ahmad";
            operson.identityNumber = "123455";
            Console.WriteLine(operson.print());
              

        }        
    }
}

 در این مثال یک کلاس با نام person تعریف شده است وسپس در متدmain  یک متغیر با نام operson تعریف کرده ایم و نوع این متغیر را از نوع کلاس تعریف شده یعنی person قرار داده ایم. به این ترتیب یک نوع داده کلاس با نام person  ایجاد کردیم و متغیری از این نوع  تعریف کردیم. خروجی این قطعه کد خواهد بود :

name=ahmad  identityNumber=123455

  • Interface type :  مانند یک قرارداد عمل می کند که در این قرارداد ساختار مشخص می شود اما پیاده سازی آن به جای داخل interface در کلاس ها و  struct هاای که آن را ارث بری می کنند انجام می شود. ( در مقاله مربوط به این موضوع، بیشتر بحث و توضیح داده می شود.)
  • array type
  • delegate type

انواع داده مقداری در نوع داده در سی شارپ تقسیم می شوند به:

  • نوع داده ساده ) simple type )
  • enum type : نوع داده شمارشی حاوی مجموعه ای از مقادیر است به عبارت دیگر نوع داده ای است که مقدارش به مجموعه ای از مقادیر محدود شده است. ( در مقاله مربوط به این موضوع، بیشتر بحث و توضیح داده می شود.)

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

   enum  days {  sat , sun , Mon , true , wed , th , fri};
  •  نوع داده ساختمان (  struct  type) : مانند نوع داده کلاس در برگیرنده ساختاری حاوی مقادیر داده ای و فانکشنی است، اما با این تفاوت که زیر مجموعه نوع داده مقداری بشمار می رود.
  • nullable value type : برای هر non-nullable value type با نام T یک nullable value type  با نام T? وجود دارد که علاوه بر بازه مقادیر نوعT  می تواند مقدار null را نیز شامل شود.
  • مثال : خطا در پذیرش مقدار null
  static void Main(string[] args)
        {
          
             int num = null;

        }

در قطعه کد بالا از انجا که نوع داده int   به عنوان یک non-nullable value type ، مقدار null  را به عنوان مقدار قبول نمی کند با خطای زیر مواجه می شویم.

  • مثال : تبدیل نوع non-nullable value type به nullable value type
static void Main(string[] args)
        {          
            int? null_num = null;       

        }

در مثال بالا نوع داده int  اگرچه مقدار null را قبول نمی کند اما با اضافه کردن علامت ?  به کلمه کلیدی int این نوع تبدیل به یک نوع داده nullable شده است.

 

انواع داده ساده:

نوع داده

بازه مقدار

bool

true or false

byte

0 to 255

sbyte

-128 to 127

short

-32,768 to 32,767

ushort

0 to 65535

int

-2,147,483,648 to 2,147,483,647

uint

0 to4249967295

long

-9223372036854775808 to 9223372036854775807

ulong

0 to 18,446,744,073,709,551,615

float

-3.402823e38 to 3.402823e38

double

-1.79769313486232e308 to 1.79769313486232e308

decimal

±1.0 × 10e−28 to ±7.9 × 10e28

char

Unicode symbols used in text

نکته

نوع داده اولیه (primitive data type) : به انواع داده با مقدار بعلاوه نوع داده string  وobject  گفته می شود.

نکته

Object یک نوع داده class است که تمامی کلاس ها به صورت مستقیم یا غیر مستقیم از آن ارث بری می کنند.

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

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