متغیرهای out در C# 7.0

متغیرهای out

قبل از C# 7.0، متغیرهای out برای ارسال رفرنس آرگومان یک متد استفاده می شد. قبل از اینکه یک متغیر به عنوان آرگومان out ارسال شود، باید تعریف شود. اگرچه، برخلاف آرگومان ref پارامتر out نیازی به مقداردهی اولیه ندارد.

برای استفاده از یک پارامتر out، هم در تعریف متد و هم فراخوانی متد باید به طور مستقیم از کلمه کلیدی out استفاده شود.

کد زیر متد GetAuthor را با ۳ پارامتر out تعریف می کند:


class Program    
{  
  
static void Main(string[] args)    
{    
  string authorName, bookTitle;    
  long publishedYear;    
  GetAuthor(out authorName, out bookTitle, out publishedYear);    
  Console.WriteLine("نویسنده: {۰}, کتاب: {۱}, سال انتشار: {۲}",    
  authorName, bookTitle, publishedYear);    
  Console.ReadKey();    
}  
  
static void GetAuthor(out string name, out string title, out long year)   
{    
  name = ام اس پی سافت" ";    
  title = "ام اس پی سافت، آن چه یک برنامه نویس نیاز دارد";    
  year = 1380;    
}  
  
}  

اگر سعی کنید که این پارامترهای out را در متد تعریف کنید، کامپایلر پیغام خطا نمایش می دهد.

اما حالا در C# 7.0 این اتفاق امکان پذیر است.

متغیرهای out

می توانیم پارامترهای out یک متد را به صورت مستقیم تعریف کنیم. کد جدید به شکل زیر درمی آید:


class Program  
{  
  
static void Main(string[] args)  
{  
  AuthorByOutParam(out string authorName, out string bookTitle, out long publishedYear);  
  Console.WriteLine("نویسنده: {۰}, کتاب: {۱}, سال انتشار: {۲}",  
  authorName, bookTitle, publishedYear);  
  Console.ReadKey();  
}  
  
static void AuthorByOutParam(out string name, out string title, out long year)  
{  
  name = "ام اس پی سافت";  
  title = " ام اس پی سافت، آن چه یک برنامه نویس نیاز دارد ";  
  year = 1380;  
}  
  
} 

کلمات wildcard مربوط به متغیر out

برای نادیده گرفتن یک پارامتر out در یک متد از نماد “*” استفاده می کنیم. به عنوان مثال در کد بالا، اگر سال انتشار برای شما مهم نیست می توانید به سادگی به جای آن از نماد * استفاده نمایید.


AuthorByOutParam(out string authorName, out string bookTitle, out *);  

خلاصه

در این مقاله درباره یکی از تغییرات جدید معرفی شده در C# 7.0 یعنی متغیرهای out صحبت کردیم.

ما در این مقاله با موضوع : بررسی ویژگی های سی شارپ ۷ نیز به ویژگی این زبان پرداختیم.

  • پسورد: www.mspsoft.com
فاطمه زکایی

فاطمه زکایی هستم. فارغ التحصیل کارشناسی مهندسی نرم افزار، مدت سه سال هست که در زمینه توسعه اپلیکیشن های تحت وب و اندروید و همچنین تولید محتوای تخصصی برنامه نویسی تحت وب و اندروید در مجموعه mspsoft در خدمت شما هستم.

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.