🧱 Partial Constructors و Events
در C# 14 پشتیبانی از Partial Members گسترش یافته و حالا شامل Constructors و Events هم میشود.
این قابلیت بهویژه برای Source Generatorها بسیار مفید است ⚙️
🏗 Partial Constructors
یک Partial Constructor باید شامل یک بخش تعریفکننده (Defining Declaration) و یک بخش پیادهساز (Implementing Declaration) باشد.
🔹 مثال:
public partial class User
{
// این بخش تعریفکننده است
public partial User(string name);
}
public partial class User
{
// این بخش پیادهساز است
public partial User(string name)
: this() // فراخوانی یک سازنده دیگر در همان کلاس
{
Name = name;
}
public User() { }
public string Name { get; set; }
}
📘 قوانین مربوط به Partial Constructorها:
فقط بخش پیادهساز (implementing part) میتواند از this() یا base() برای فراخوانی یک constructor دیگر استفاده کند.
فقط یکی از بخشهای کلاس میتواند از Primary Constructor استفاده کند.
🔧 این ویژگی در پروژههایی که به صورت خودکار کد تولید میکنند (مانند source generators)، انعطاف زیادی ایجاد میکند و اجازه میدهد بخشی از logic در runtime تولید یا تزریق شود.
⚡️ Partial Events
همچنین، Partial Events نیز نیاز به دو بخش دارند — یکی تعریفکننده (Defining Declaration) و دیگری پیادهساز (Implementing Declaration).
🔹 مثال:
public partial class Downloader
{
public partial event Action<string> DownloadCompleted;
}
public partial class Downloader
{
public partial event Action<string> DownloadCompleted
{
add { }
remove { }
}
}
📘 در اینجا بخش پیادهساز باید شامل هر دو accessor یعنی add و remove باشد.
✨ این قابلیت به ویژه در سناریوهایی مفید است که بخشی از تعریف event توسط ابزار یا generator تولید میشود و بخش دیگر توسط توسعهدهنده پیادهسازی میگردد.
🔗 برای مشاهدهی فهرست کامل ویژگیهای جدید C# 14، میتوانید به مستندات رسمی Microsoft مراجعه کنید.