چند ترفند کدنویسی در سی شارپ

ساخت وبلاگ
ترفند اول: چطور میتوانیم برای متدهای غیر public تست کیس بنویسیم

آیا تا به حال اتفاق افتاده است که بخواهید برای متدهای غیر public یک اسمبلی unit test case بنویسید؟ خیلی از برنامه نویسان این کار را انجام نمیدهند. چرا که این متدها برای پروژه تست، قابل دیدن نیستند. سی شارپ به شما اجازه میدهد متدهای internal یک اسمبلی را برای یک اسمبلی دیگر، قابل دیدن کنید. کافی است که attribute زیر را به فایل AssemblyInfo.cs اضافه کنید:
//این کد اعضای اینترنال یک اسمبلی را برای اسمبلی دیگر قابل دیدن میکند
[assembly: InternalsVisibleTo("MyTestAssembly")]
ترفند دوم: استفاده از Tuples

بعضی از برنامه نویسان، کلاس های بی استفاده ای میسازند تا بتوانند مقادیر خروجی یک متد را درون پراپرتی های آن بریزند. Tuples ها در دات نت ۴ معرفی شدند و میتوانند در چنین مواقعی استفاده شوند:
public Tuple<int, string, string> GetُStudent()
{
int studentId = 200;
string firstName = "Ali";
string lastName = "Sabouei";

//return Tuple
return Tuple.Create(studentId , firstName, lastName);
}
ترفند سوم: عدم استفاده از collection

معمولا وقتی که ما میخواهیم تعدادی از آیتم های یک Collection را برگردانیم و نگه داریم، از یک Collection کمکی استفاده میکنیم. مانند کد زیر:
public List GetBiggerThan10(List masterCollection)
{
List resultCollection= new List();

foreach (var value in masterCollection)
{
if (value > 10)
resultCollection.Add(value);
}
return resultCollection;
}
در حالی که بهتر است از دستور yield مانند روش زیر استفاده کنیم:
public IEnumerable GetBiggerThan10(List masterCollection)
{
foreach (var value in masterCollection)
{
if (value > 10)
yield return value;
}
}
ترفند چهارم: متدهای قدیمی را آرامآرام از دور خارج کنیم:

در مواقعی که کتابخانه کد شما متدی را برای استفاده ارائه میکند و قصد دارید در آینده آن متد را تغییر بدهید، از کد زیر استفاده کنید. در صورت استفاده از این کد، وقتی کاربر بخواهد از متد قدیمی استفاده کند، به او هشدار داده میشود که از ورژن جدید آن استفاده کند:
[Obsolete("In Method bezoodi jaygozin khahad shod. Shoma Mitavanid az method 123 estefade konid.")]
public void OldMethod()
{
//Code
}
اگر بخواهید به جای اخطار، برنامه Build نشود، میتوانید یک آرگومان true به کد اضافه کنید:
[Obsolete("In Method bezoodi jaygozin khahad shod. Shoma Mitavanid az method 123 estefade konid.",true)]
public void OldMethod()
{
//Code
}

منابع: 118فایل
alborzcode

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 163 تاريخ : يکشنبه 3 دی 1396 ساعت: 13:47