نگاهی به روند تکاملی نحوهی تعریف خواص از C# 1.0 تا C# 9.0
در C# 1.0 برای تعریف خواص، نیاز به نوشتن مقدار زیادی کد بود: public class Person
{
public string _firstName;
public string FirstName
{
get
{
return _firstName;
}
set
{
_firstName = value;
}
}
}
در اینجا تعریف backing fieldها ...
اگر به قالب ابتدایی یک برنامهی کنسول #C دقت کنیم، همواره به ساختار استاندارد زیر میرسیم: using System;
namespace CS9Features
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
در اینجا یک سری import، به همراه تعریف فضای نام، تعریف کلاس و تعریف متد Main وجود دارند ... تا بتوان یک سطر Hello World را در کنسول ...
ویژگی جدید مورد بحث در این قسمت، «Improved Target Typing» نام دارد. اما «Target Typing» چیست؟ حدس زدن نوع یک شیء بر اساس زمینهای که توسط آن تعریف شدهاست، Target Typing نامیده میشود. نمونهای از آنرا سالهاست که با استفاده از واژهی کلیدی var در #C استفاده میکنید. اما قابلیتی که در C# 9.0 اضافه شدهاست، تقریبا معکوس آن است.
Target Typing در C# 9.0
مشکلی که بعضیها با واژهی کلیدی var دارند، این است که اندکی خوا ...
ویژگیهای جدید C# 9.0، به همراه NET 5. ارائه میشوند. بنابراین جهت راه اندازی پروژهای که قرار است بر این مبنا تهیه شود، نیاز است مراحل زیر را طی کنید:
- آخرین نگارش NET 5 SDK. را از اینجا دریافت و نصب کنید (حتما SDK باشد و نه runtime).
- اگر میخواهید با ویژوال استودیو کار کنید، نیاز است حداقل نگارش 16.7 یا بالاتر را نصب کرده باشید. به همین جهت پیش از ادامهی بحث، از منوی Help، گزینهی Check For Updates را انتخاب کرد ...
فرض کنید قصد دارید عملیات نرمال سازی اطلاعات را بر روی یک رشته انجام داده و برای مثال اعداد فارسی و انگلیسی موجود در یک رشته را یکدست کنید. اولین روشی که برای اینکار به ذهن میرسد، استفاده از متد Replace است: private static string toPersianNumbersUsingReplace(string data)
{
if (string.IsNullOrWhiteSpace(data)) return string.Empty;
return
data
.Replace("0", "\u06F0")
.Replace("1", "\u06F1")
...
Feather HTTP یک فریمورک HTTP سبک، برای ایجاد APIهای NET Core. است، در واقع یک wrapper بر روی APIهای موجود ASP.NET Core میباشد که به ما امکان ایجاد HTTP API را در کمترین زمان میدهد. در این مطلب نحوه ایجاد یک API را توسط این فریمورک بررسی خواهیم کرد. معرفی قالب FeatherHttp.Templates به سیستم dotnet برای شروع میتوانیم قالب پروژه Feather HTTP را به لیست قالبهای از پیش نصب شدهی dotnet اضافه کنیم. برای اینکار کافی است در خط ...
در بعضی از شرایط
پیش رفته، ممکن است نمونه سازی از یک Implementation Type ، نیاز به دخالت مستقیم ما را
داشته باشد. Implementation Factory کنترل بیشتری بر چگونگی استفادهی از Implementation Type ها را به ما ارائه میدهد. در هنگام ثبت سرویسی که Implementation Factory را در اختیار ما قرار میدهد، ما
یک Delegate را برای
فراخوانی سرویس استفاده میکنیم ...
در بخش پنجم از سری نوشتار « تزریق وابستگیها در ASP.NET Core »، میخواهیم به شرح کلاس ServiceDescriptor بپردازیم. اگر تعریف اینترفیس IServiceCollection را
مشاهده کنیم، میبینیم که IServicecollection در
واقع لیستی از اشیائی از نوع ServiceDescriptor را نگهداری میکند: namespace Microsoft.Extensions.DependencyInjection
{
public interface IServiceCollection :
ICollection&l ...
در قسمتهای قبلی این سری، به ترتیب ابتدا در مورد مبحث تزریق وابستگیها صبحت کردیم، بعد اولین سرویسمان را در ASP.NET Core ثبت و واکشی کردیم. در بخش سوم، تنظیمات را درون سامانه، ثبت و استفاده کردیم و حالا در این بخش میخواهیم به مبحث طول حیات سرویسها بپردازیم. همانطور که گفتیم، وظیفهی DI Container، ایجاد یک نمونه از سرویس درخواست شده، تزریق آن به کلاس درخواست دهنده و در انتها از بین بردن یا Dispose شیء ایجاد شده از سرویس ثبت شدهاست ...