در زبان #C، زمانیکه از کلاسی ارثبری میشود، امکان بازنویسی متدهای کلاس پایه، در صورت معرفی آنها به صورت virtual و یا abstract، وجود دارد؛ اما در این بازنویسیها، تغییر نوع خروجی این متدها مجاز نیست. این محدودیت در C# 9.0 با معرفی Covariant returns برداشته شدهاست؛ با یک شرط: نوع جدید این خروجی، باید covariant نوع اصلی متدی باشد که از کلاس پایهی آن ارثبری شدهاست.
وضعیت خروجی متدهای بازنویسی شده تا پیش از C# 9.0
...
یکی از ویژگیهای زبان VB، شباهت بیش از اندازهی آن به زبان انگلیسی است. برای مثال در این زبان با استفاده از not و and: If Not a And b Then
...
Else
...
EndIf
میتوان ifهای خواناتری را نسبت به #C ایجاد کرد: if(!(a) && b)
{
...
}
else
{
}
در ادامه خواهیم دید که چگونه C# 9.0، این آرزوی دیرین را برآورده میکند! البته مایکروسافت در جای دیگری هم عنوان کردهاست که زبان VB را دیگر پیگیری نمیکند ...
در مطلب معرفی خواص init-only ، با روش معرفی خواص immutable آشنا شدیم. نوع جدیدی که به C# 9.0 به نام record اضافه شدهاست، قسمتی از آن بر اساس همان خواص init-only کار میکند. به همین جهت مطالعهی آن مطلب، پیش از ادامهی بحث جاری، ضروری است.
چرا در C# 9.0 تا این اندازه بر روی سادگی ایجاد اشیاء Immutable تمرکز شدهاست؟
به شیءای Immutable گفته میشود که پس از وهله سازی ابتدایی آن، وضعیت آن دیگر قابل تغییر نباشد. همچنی ...
اگر به قالب ابتدایی یک برنامهی کنسول #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 را انتخاب کرد ...
تا اینجا دو روش را برای آزمایش کلی یک سیستم Web API به همراه تمام زیر ساختهای آن، بررسی کردیم:
- استفاده از Postman برای آزمایش یک برنامهی Web API
- استفاده از strest برای آزمایش یک برنامهی Web API
روش سومی هم برای انجام اینکار وجود دارد که به صورت توکار از زمان ارائهی ASP.NET Core 2.1 به همراه TestServer آزمایشی آن میسر شد. این روش در نگارش 3.1، با تغییر روش تعریف فایل program.cs، جهت سازگاری آن با آ ...
Profileهای AutoMapper، قابلیت تزریق وابستگیها را در سازندهی خود ندارند؛ به همین جهت در این مطلب، دو راه حل را جهت رفع این محدودیت بررسی میکنیم. مثال: نیاز به نگاشت کلمهی عبور، به کلمهی عبور هش شده
فرض کنید موجودیت کاربری که قرار است در بانک اطلاعاتی ذخیره شود، چنین ساختاری را دارد: namespace AutoMapperInjection.Entities
{
public class User
{
public int Id { set; get; }
public ...
در سری کار با Postman ، یک روش بسیار متداول آزمایش Web APIs را بررسی کردیم. اما ... برای کار آن با مدام نیاز است از این برگه به آن برگه مراجعه کرد و ارتباط دادن درخواستهای متوالی در آن مشکل است. به همین منظور تابحال راهحلهای زیادی برای جایگزین کردن postman ارائه شدهاند که یکی از آنها strest است. این ابزار خط فرمان:
- بسیار سبک ورزن است و تنها نیاز به نصب بستهی npm آنرا دارد.
- با فایلهای متنی معمولی کار میکند ...