مانند رکورد ها که نمونه اولیه می ساختیم :
public record Person(string frstName, string fastName);
حالا برای کلاس ها هم میتوانیم این امکان را داشته باشیم:
public class Person(string frstName, string fastName)
استفاده از مجوعه ها و ساده سازی کار برنامه نویس در زمان استفاده از مجموعه های مختلف مانند آرایه ها و یا لیست ها و یا غیره
public void GetPersons(int[] ids) {}
public void GetPeople(List<int> ids) {}
در زمان استفاده باید حتما آرایه و لیست به عنوان پارامتر به توابع بالا بدهیم، در غیر این صورت اگر برای لیست آرایه پاس بدهیم خطا میخورد،
اما در سی شارپ ۱۲ میتوانیم به شکل زیر عمل کنیم
person.GetPersons([۱,۲,۳,۴])person.GetPeople([۱,۲,۳,۴])
ویژگی جدید که به شما امکان میدهد ویژگی را به انواع، متدها یا مجموعههای خود اضافه کنید تا نشان دهید که این ویژگی آزمایشی است.
با انجام این کار، کامپایلر زمانی که کسی سعی می کند از متد استفاده کند، خطا می دهد و متذکر میشود که این کلاس به صورت موقت است و امکان تغییر یا حذف دارد
[Experimental("TestClass")]
public class Person
{
}
با این امکان نمیتوان مقداری را که توسط مرجع ارسال میشود تغییر داد، زیرا یک "فقط خواندنی" است.
public void Persons(ref readonly int number)
{
Console.WriteLine("Your number is {number}");
number++; این خط خطا میدهد و کامپایلر اجرا نمیشود، چون فقط خواندی است
}