تعداد ویدئو | 16 |
---|---|
زمان دوره | 00:38:15 |
مترجم | پرووید |
ناظر ترجمه | پرووید |
دوبلر | پرووید |
ناظر دوبلاژ | پرووید |
سایت منتشر کننده | پلورال سایت |
آموزش قابلیت های جدید سی شارپ 11 یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، آموزش قابلیت های جدید Csharp 11 است که با نام اصلی Whats New in Csharp 11 از شرکت Pluralsight منتشر شده است.
در نسخه یازدهم از زبان برنامه نویسی سی شارپ که امروزه یکی از محبوب ترین زبان های برنامه نویسی برای توسعه اپلیکیشن های مختلف می باشد، قابلیت های بسیار جذابی لحاظ گردیده اند. استفاده از این قابلیت ها می تواند قدرت کدنویسی برنامه نویس را ارتقا بدهد و حتی از حجم کدهای نوشته شده بکاهد. در قسمت زیر لیستی اجمالی از این قابلیت ها را قرار داده ایم و سپس به طور ویژه در رابطه با یکی از این قابلیت ها صحبت خواهیم کرد.
در ادامه قصد داریم در مورد یکی از قابلیت های سی شارپ 11 یعنی attribute های جنریک کمی مفصل تر صحبت کنیم.
در نسخه یازدهم از زبان برنامه نویسی سی شارپ امکان تعریف کردن یک کلاس جنریک که کلاس پدر و یا base class مربوط به آن از نوع System.Attribute باشد وجود دارد. این قابلیت جدید باعث می شود که روشی ساده تر با syntax ساده تری برای نوشتن attribute هایی که نیازمند یک پارامتر از نوع System.Type می باشند را داشته باشیم. در نسخههای قبلی زبان سی شارپ امکان این کار وجود نداشت و برای پیاده سازی کردن جنین موضوعی نیازمند ایجاد کردن یک attribute که یک type را به عنوان پارامتر تابع سازنده دریافت کند بودیم. کدی که در قسمت زیر مشاهده می کنید انجام چنین کاری را در نسخه های قبل تر از نسخه یازدهم نشان می دهد.
// Before C# 11:
public class TypeAttribute : Attribute
{
public TypeAttribute(Type t) => ParamType = t;
public Type ParamType { get; }
}
سپس برای اعمال کردن این attribute از عملگر typeof شبیه به کد زیر استفاده کنیم.
[TypeAttribute(typeof(string))]
public string Method() => default;
حال با استفاده از این قابلیت جدید در زبان برنامه برنامه نویسی سی شارپ ۱۱ می توانیم یک attribute را شبیه به کد زیر ایجاد
کنیم.
// C# 11 feature:
public class GenericAttribute : Attribute { }
سپس شبیه به کد زیر type parameter های مورد نظر برای استفاده شدن در attribute که ایجاد شده را لحاظ می کنیم.
[GenericAttribute()]
public string Method() => default;
یکی از نکات مهم مربوط به استفاده کردن از این روش این است که تمامی type parameter را در زمان اعمال کردن اطلاعات مورد نظر بایستی لحاظ بگردند. به عبارت دیگر، تایپ جنریک استفاده شده باید به صورت کامل ساخته بشود. در مثال بالا، جفت پرانتز های باز و بسته می توانند حذف بگردند چرا که این attribute هیچ آرگومانی ندارد.
public class GenericType
{
[GenericAttribute()] // Not allowed! generic attributes must be fully constructed types.
public string Method() => default;
}
نکته دیگر اینکه type argument ها می بایست به طور کامل محدودیت هایی که در استفاده کردن از عملگر typeof نیز وجود دارند اعمال می کنیم. استفاده کردن از type هایی که نیاز به metadata annotation ندارند امکان پذیر نمی باشد. به عنوان مثال، استفاده کردن از type های زیر به عنوان type parameter امکان پذیر نخواهد بود.
dynamic
string?
(int X, int Y)
این type ها به طور مستقیم در متادیتا نمایش داده نشدند به عبارت دیگر، آنها شامل annotation هایی هستند که type مورد نظر را توصیف می کند. در چنین شرایطی می توانید از type زیرین استفاده کنید. برای مثال، از object به جای dynamic و از string به جای string? و از ValueTuple<int, int> به جای (int X, int Y) استفاده کنید.
فصل اول: مقدمه دوره آموزشی
فصل دوم: بهبود های کار کردن با رشته ها
فصل سوم: کاربردهای Generic ها و Attribute ها
فصل چهارم: قابلیت های مربوط به Pattern
فصل پنجم: قابلیت های مربوط به Scoping و Type Member ها
تمامی حقوقی مادی و معنوی متعلق به گروه آموزشی پرووید است.
نقد و بررسیها
هیچ دیدگاهی برای این محصول نوشته نشده است.