C# Programming Guide
Photo
فرض کنید میخواید یه سری داده رو با خروجی کلاس MessageContract از سرور به کلاینت بفرستید و نمیخواهید همیشه MessageContract رو توی بازگشتی خطا ها همش new کنید و مقادیرش رو پر کنید، بلکه فقط میخواهید یک String رو return کنید ولی خروجیش از نوع MessageContract ای باشه که Success نیست و خطا هست.
توی تابع بالا خروجی تابع شما از نوع MessageContract هست ولی شما یک string رو return کردید implicit ها به شما کمک میکنن تا یک مقدار رو از پیش و کد کمتر و تمییز تر خروجی بدید و هر بار اونو مجدد باز سازی نکنید تا کد هاتون شلوغ نشه یا به عبارت دیگه باعث میشه تا شما انواع داده ها و کلاس ها رو به هم تبدیل کنید.
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/implicit
توی تابع بالا خروجی تابع شما از نوع MessageContract هست ولی شما یک string رو return کردید implicit ها به شما کمک میکنن تا یک مقدار رو از پیش و کد کمتر و تمییز تر خروجی بدید و هر بار اونو مجدد باز سازی نکنید تا کد هاتون شلوغ نشه یا به عبارت دیگه باعث میشه تا شما انواع داده ها و کلاس ها رو به هم تبدیل کنید.
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/implicit
Docs
User-defined conversion operators - C# reference
Learn how to define custom implicit and explicit type conversions in C#.
C# Programming Guide
فرض کنید میخواید یه سری داده رو با خروجی کلاس MessageContract از سرور به کلاینت بفرستید و نمیخواهید همیشه MessageContract رو توی بازگشتی خطا ها همش new کنید و مقادیرش رو پر کنید، بلکه فقط میخواهید یک String رو return کنید ولی خروجیش از نوع MessageContract…
Program.cs
1 KB
implicit sample
C# Programming Guide
فرض کنید میخواید یه سری داده رو با خروجی کلاس MessageContract از سرور به کلاینت بفرستید و نمیخواهید همیشه MessageContract رو توی بازگشتی خطا ها همش new کنید و مقادیرش رو پر کنید، بلکه فقط میخواهید یک String رو return کنید ولی خروجیش از نوع MessageContract…
توی کلاس مورد نظرتون شما میتونید هرچندتا که میخواهید از هر نوع خروجی مثلا (enum) هم implicit بسازید و توی تابع خودتون هم String خروجی بدید و هم enum و در هر دو صورت توابع implicit شما فراخونی شده و string یا enum شما تبدیل به MessageContract یا کلاس مورد نظر شما میشن.
C# Programming Guide
Photo
فرض کنید کلاس MessageContract شما در یک کامپوننتی قرار دارد که شما به سورس ان دسترسی ندارید یا دسترسی به ان سخت است، ولی شما میخواهید یک تابع برای ان بنویسید، یا بالعکس شما میخواهید برای کلاس string یک تابع بنویسید که بتوانید از ان خروجی MessageContract بگیرید (مثال بالا) شما میتوانید از توابع Extension استفاده کنید. توابع Extension باید static باشند و در کلاس static قرار گرفته باشند.در مثال بالا Success یک تابع Extension است.
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
Docs
Extension Methods - C#
Extension methods in C# enable you to add methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type.
