مشاهده منبع مطلب به زبان اصلی

 

 

شامل عدد های صحیح علامت دار یعنی عددهای مثبت و صفر و عددهای منفی است

 اعداد :

 

–9,223,372,036,854,775,808       to      9,223,372,036,854,775,807

 

هر عدد از این نوع داده ،  به شصت و چهار بیت حافظه ram نیاز دارد

 

مثال :

 

long a ;

a= 12454;

 و یا در زمان تعریف متغیر ، اولین مقدار را در ان قرار دهیم :

long a = 4554787;

 

مثال :

 

long  long1 =4294967296 ;


عدد 4294967296 بعنوان uint در نظر گرفته می شود .

برای اینکه این عدد دقیقا از نوع long در نظر گرفته شود باید حرف ال بزرگ یعنی L
را کنار عدد بنویسیم .

long  long1 =4294967296L ;

 

حرف L یعنی عدد long یا ulong است . بسته به مقدار عدد long یا ulong بودن ان مشخص می شود . در اینجا عدد در محدوده long است .

 

رفتار پارامتر long در متدها

 

متد یعنی زیر برنامه ای که خودمان تعریف می کنیم

 

در سی شارپ می توان چند زیر برنامه با نام مشابه داشت

 

من در اینجا دو زیر برنامه  به نام test تعریف می کنم . اولی پارامتری به نام a از نوع int دارد که پیام  welcome را نشان می دهد و دومی پارامتری به نام a از نوع long دارد که پیام  سی شارپ را نشان می دهد

 

 void test1(int a)  {MessageBox.Show("welcome");}

 

 void test1(long   b)  {MessageBox.Show("c#");}

 

حال در رویداد کلیک روی دکمه متد test1 را با مقدار 14 صدا می زنم

 

  private void button1_Click(object sender, EventArgs e)


        {
              test1(14);
        }

 

 

ما دو تا test1 داریم . فکر می کنید کدام یک از این دو test1 فراخوانی می شود ؟

ان متدی که پارامترش از نوع int است . چرا که سی شارپ عددهایی که در محدوده int هستند را از نوع  int در نظر می گیرد 

 

حال چه کنیم که 14 را از نوع long در نظر بگیرد و test1 دیگر را اجرا کند ؟

براحتی . بعد از 14 ، حرف L را قرار دهید تا 14 به long  تبدیل شود

  private void button1_Click(object sender, EventArgs e)
        {
              test1( 14L);
        }

 

البته از ال کوچک انگلیسی هم می توان استفاده کرد ولی بهتر است این کار را نکنید چرا که ممکن است خود شما دچار اشتباه شوید و حرف ال کوچک را با عدد یک اشتباه بگیرید

 

 

 

 و یا اینکه قبل از 14 عبارت long را در پرانتز قرار دهید تا 14 از نوع long در نظر گرفته شود

  private void button1_Click(object sender, EventArgs e)
        {
              test1(  (long)   14 );
        }

 

توجه توجه :

 

نکته ای که گفته شد مربوط به زمانی است که مقدار پارامتر در محدوده int هم باشد .

 

اما وقتی مقدار پارامتر فراتر از int و در محدوده long است فقط متدی فراخوانی می شود که پارامتر ان از نوع long است

 

 

 

مثال :

 

int x  = 8 L ;

خطا دارد . چون می خواهد عدد با ظرف بزرگتر یعنی  از نوع long را در متغیر با ظرف کوچکتر یعنی X قرار دهد

 

 

مثال :

 

int x  =  (int ) 8 L ;

صحیح است .  چون عدد ی که در ظرف بزرگ قرار دارد یعنی 8 را می تواند بعد از تبدیل به ظرف کوچک در متغیر  از نوع int قرار دهد .