ایجاد خودکار فیلدهای Private Readonly در ویژوال استودیو

چهارشنبه 5 خرداد 1400

در تزریق وابستگی کانستراکتور در پروژه های NET/.NET Core. ، یک فرآیند سه مرحله ای برای افزودن وابستگی جدید به یک کلاس وجود دارد.

ایجاد خودکار فیلدهای Private Readonly در ویژوال استودیو

1. یک فیلد private readonly در کلاس، با یک پیشوند آندرلاین روی نام متغیر می‌سازیم

2. کانستراکتور را برای پذیرفتن همان نوع ویرایش می‌کنیم، اما بدون پیشوند نام پارامتر

3. فیلد Private Readonly را ست می‌کنیم تا پارامتر ارسال شده در کانستراکتور باشد

در نهایت، چیزی شبیه به این را می خواهیم:

public class UserService
{
    private readonly IUserRepository _userRepository;

    public UserService(IUserRepository userRepository)
    {
        _userRepository = userRepository;
    }
}

خوب، حداقل این روند قبلا استفاده می‌شده است. در حال حاضر چند سالی است که ما از یک ترفند خوبی در ویژوال استودیو استفاده می‌کنیم تا بیشتر این کارها را برای ما انجام دهد.

ویژگی ایجاد خودکار متغیرهایی که به سازنده ارسال می‌شوند، به طور پیش فرض در ویژوال استودیو فعال است، با این حال private readonly با قرارداد نامگذاری آندرلاین وجود ندارد (که این موضوع کمی آزاردهنده است زیرا این قرارداد اکنون در استانداردهای خود مایکروسافت برای کد سی‌شارپ وجود دارد!).

برای افزودن این موضوع، ما باید کارهای زیر را در ویژوال استودیو انجام دهیم. مسیر دقیق تنظیمات به این صورت است:

Tools => Options => Text Editor => C# => Code Style => Naming

این مسیر باید شما را به این صفحه ببرد:

اولین کاری که باید انجام دهیم کلیک بر روی دکمه " Manage naming styles" است، سپس بر روی به علاوه کوچک کلیک کنید تا اضافه شود. ما باید آن را مانند این پر کنیم:

ما می‌خواهیم این را در مثال‌مان اضافه کنیم، ما یک فیلد camelCase را با پیشوند آندرلاین انجام می‌دهیم، اما اگر شما از قرارداد نامگذاری خودتان استفاده می‌کنید، می‌توانید این کار را نیز در اینجا انجام دهید. بنابراین اگر از پیشوند آندرلاین استفاده نکنید، یا از kebab casing (مثل user-login-count) استفاده کنید، یا از snake casing (مثل user_login_count) استفاده کنید، در واقع می‌توانید آن را در اینجا تنظیم کنید.

سپس در صفحه نامگذاری (Naming)، مشخصات را برای Private یا Internal، با استفاده از استایل fieldname_، اضافه کنید. همه این روش را تا بالا ببرید:

و کار ما تمام شد!

اکنون کافی است به راحتی پارامترها را به کانستراکتور اضافه کنید و موس را به سمت چپ پنچره کد ببرید تا گزینه Quick Actions ظاهر شود و از گزینه " Create and Assign Field" استفاده کنید.

شما در واقع می‌توانید این کار را برای بسیاری از انواع دیگر فیلدها، پارامترها، رویدادها و غیره انجام دهید، و می‌توانید تمام قراردادهای نامگذاری را به دلخواه خود تنطیم کنید.

برنامه نویسان

نویسنده 3242 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید