هیچکدوم از اینها هوش مصنوعی پیچیده ای ندارند، شما باید ببینید کدوم ابزار بهتر براتون جواب میده.
نیازی نیست برای یادگیری کار با ReSharper اسنادی رو مطالعه کنید، نصب کردنش برای استفاده از اغلب کارکرد هاش کفایت می کنه.
مهمترین کاری که انجام می دهید اینه که دوره ای یا زمانی که فرصتش رو دارید با Inspect کردن کدتون از ReSharper میخواهید بهتون توصیه های لازم رو بکنه، بسیاری از تغییرات رو حتی خودش میتونه بصورت خودکار و گروهی انجام بده.
قبلا هم گفتم و تکرار می کنم، ReSharper برای بهینه سازی کد و یادگیری اصولی یکسری نکات در کد نویسی خیلی مفیده و اگر تا حالا ازش استفاده نکرده اید ضرر کرده اید. هم موقع نوشتن کد و هم بعدش میتونه کدتون رو Inspect کنه و بگه فلان جا رو اینطور بنویسید بهتره یا فلان جا کدتون ایراد منطقی داره.
و با وجود اینکه تنظیمات بسیار زیادی داره، این قابلیت رو هم داره که خودش کدتون رو بررسی کنه و بر اساس اون قالب و فرمت و شیوه که در کدتون دارید، تنظیماتش رو به روز کنه.
و معایبش هم افزایش بار پردازنده و مصرف حافظه است که میتونه کارکرد ویژوال استدیو در یک سیستم ضعیف کند کنه.
سلامی مجدد استاد .
خیلی ممنون استاد از پیشنهادتون .
Resharper 2021.3.1 را هم توی Visual Studio 2019 و هم در نسخه ی 2022 نصب کردم .
در دید اول خوب هست .
ولی همونطور که قبل اش هم یه جستجو درباره اش کردم ، حداقل تا حالا ، قابلیتی ازش را ندیدم که مثل IntelliCode ئه Visual Studio 2022 باشه .
حتی نصب و فعال بودنِ Resharper ، تاثیرِ ضعیفی روی IntelliCode ئه VS 2022 میذاشت و در جاهایی (هر چند کم) باعث میشد که IntelliCode ، پیشنهاد نده (اما وقتی Resharper را غیر فعال میکردم ، اون پیشنهاد را میداد) .
هر چند اون جاها و این حالت (که Resharper روی IntelliCode ئه VS 2022 تاثیر بذاره) ، کم بود و معمولا زمانی که میخواستیم شی ای بسازیم بود .
در کد زیر ، در VS 2022 ، وقتی Resharper غیر فعال بود :
C#:
StringBuilder[] stringBuilders = new StringBuilder[3];
stringBuilders[0] = new StringBuilder("1");
stringBuilders[1] = new StringBuilder("2");
stringBuilders[2] = new StringBuilder("3");
foreach (StringBuilder item in stringBuilders)
{
string itemString = item.ToString();
if (!string.IsNullOrEmpty(itemString))
MessageBox.Show(itemString);
}
کدهای خیلی کمی از این کدِ بالا را خودم نوشتم .
یعنی من فقط اون StringBuilder[] ئه اولش را نوشتم (اون هم بخشی از این را نوشتم) ، بقیه در خط اول را تقریبا IntelliCode پیشنهاد داد .
خط دوم را بجز مقدار "1" را که خودم نوشتم ، بقیه را IntelliCode پیشنهاد داد .
چون مقدار 1 در خط اول را نوشتم ، خودش فهمید و خط سوم (خطی که stringBuilders[1] نوشته) را خودش کاملا پیشنهاد داد (یعنی مقدار "2" را خودش نوشت) .
خط چهارم هم همینطور .
خطِ foreach را کاملا من نوشتم .
بعد که Enter زدم (با کلیک کردن در فضای خالیِ Editor پیشنهاد نمیده . من ، Enter را زدم و)، خط بعدی (خطی که متغییر itemString نوشته) را کاملا خودش پیشنهاد داد .
خط بعدی (بجز عملگرِ ! را که من نوشتم) ، بقیه را خودش پیشنهاد داد .
خط بعدی که MessageBox اش را من نوشتم و بقیه را خودش پیشنهاد داد .
========
منتها وقتی Resharper فعال هست ، انگار (چون تازه باهاش آشنا شدم ، دقیقا نمیدونم) زمان هایی که شی ای میدیم یا متدی را فراخونی میکنیم ، روی IntelliCode تاثیر میذاره و باعث میشه که IntelliCode پیشنهاد نده .
فرضا زمانی که کد بالا را مینوشتم ، وقتی Resharper فعال بود ، وقتی MessageBox را مینوشتم ، دیگه در این خط ، IntelliCode پیشنهاد نمیداد (و باید خودم متد Show را فراخونی میکردم و متغییر itemString را توش مینوشتم) .
==========
اما خودِ Resharper ، قابلیتی شبیه این (IntelliCode ئه VS 2022) نداشت .
نهایتا چیزی شبیه به IntelliSense ئه Visual Studio داشت که یه کم ازش بهتر بود .
همین کد بالا را بدون قابلیت IntelliCode ئه VS 2022 ، یعنی در نسخه ی VS 2019 به همراه Resharper مینویسیم ، خیلی بیشتر طول میکشه و نهایتا از قابلیت IntelliSense ئه Resharper یا VS 2019 میتونیم استفاده کنیم .
ولی Resharper ، خوبی های دیگه ای هم انگار در دیدِ اول داره . مثلا اینکه هشدار میده که فلان متغییر ات ممکنه ارور Null Refrence را پرتاب کنه و از این نوع یادآوری ها که کمک کننده هست .
راستی ، انگار یکی از معایب VS 2022 ، مصرف زیاد حافظه هست . یک پروژه (جوری که باهاش یک کار را هم در) VS 2022 و هم در VS 2019 میکنم و باز کردم ، اما در VS 2022 حدودا 2.6 گیگ و در VS 2019 حدود 1.5 گیگ استفاده میکنه .
تشکر استاد .