اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
یک دقیقه
در C# 5 به بعد میتوان به پارامترهای یک متد، پارامترهای دلخواهی را افزود تا به واسطه آنها مشخصات کدی که این متد را فراخوانده، به دست آورد. روش انجام این کار، افزودن صفات زیر به پارامترهای متد مورد نظر است:
- [CallerFilePath]:مسیر کد فراخواننده را نگه میدارد.
- [CallerLineNumber]: شماره خط کد فراخواننده را
نگه میدارد.
- [CallerMemberName] : نام کد فراخوان را نگه میدارد .
این صفات کامپایلر را قادر میسازد که اطلاعاتی درباره فراخواننده متد مورد نظر، جمعآوری کند
مثال زیر را در نظر بگیرید:
using System; using System.Runtime.CompilerServices; namespace ConsoleApplication8 { class Program { static void Main(string[] args) { Test(); Console.Read(); } static void Test( [CallerMemberName] string memberName = null, [CallerFilePath] string filePath = null, [CallerLineNumber] int lineNumber = 0) { Console.WriteLine(memberName); Console.WriteLine(filePath); Console.WriteLine(lineNumber); } } }
که نتیجه اجرای کد فوق به صورت زیر است:
Main c:\Pojects\ConsoleApplication8\Program.cs 9
که عبارت Main عنوان متدی است که محل فراخوانی متد مورد نظر ماست و خط دوم حاوی مسیری است که کد فراخواننده متد مورد نظر ما درآنجا ذخیره شده است و عدد 9 نشانگر شماره خط محل فراخوانی متد Test است.