Blog Dla Młodszych Programistów C#/.NET

wtorek, 18 sierpnia 2020
Czy często jak tworzysz nową klasę w C# z poziomu visual studio irytuje Cię, że klasa jest domyślnie tworzona bez publicznego modyfikatora dostępu? Klasa, która nie ma jawnie zdefiniowanego modyfikatora dostępu, ma dostęp internal. Jednak jeżeli chcesz, żeby Twoja klasa była publiczna, musisz zawsze po jej stworzeniu dodać słowo kluczowe public. Jest to trochę niepotrzebna czynność, fajnie jakby domyślnie klasy były publiczne. Czy da się w ogóle tak zrobić? Jeżeli tak, to, jak to zrobić? Dlaczego klasy są domyślnie oznaczane jako internal? W tym krótkim artykule odpowiem na wszystkie te pytania.

Jak Tworzyć Nowe Klasy w Visual Studio Domyślnie z Modyfikatorem Public?


Jak wygląda domyślnie stworzona klasa w visual studio?


Domyślnie po utworzeniu klasy z poziomu visual studio, wygląda ona tak:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace App
{
    class Post
    {
    }
}
Klasa jest tworzona ze zdefiniowanego wcześniej szkieletu, który możemy sobie dostosować do naszych potrzeb.



Dlaczego tworzone klasy są domyślnie oznaczane jako internal?


To, że klasa jest tworzona jako internal, również nie jest przypadkowe. Dzięki temu, że jest klasą z modyfikatorem internal, nie jest udostępniania na zewnątrz, dlatego taki zabieg jest bezpieczny. W C# nie tylko klasy, ale również nowe pola, czy metody domyślnie są tworzone z minimalnym wymaganym zakresie.



Jak ustawić, aby nowe klasy w visual studio domyślnie były tworzone z modyfikatorem public?


Aby zmienić domyślny szkielet klasy, musisz przejść do pliku Class.cs, który w zależności od wersji visual studio jaką używasz, może znajdować się w innym folderze.

W Visual Studio 2019 Community znajduje się on w:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

Visual Studio 2019 Enterprise:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

Visual Studio 2019 Professional:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

Tak wygląda plik Class.cs:
using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
$endif$using System.Text;
$if$ ($targetframeworkversion$ >= 4.5)using System.Threading.Tasks;
$endif$
namespace $rootnamespace$
{
    class $safeitemrootname$
    {
    }
}

Możesz go dowolnie modyfikować, jeżeli chcesz, aby nowe klasy były tworzone z modyfikatorem dostępu public, zmień zawartość pliku Class.cs na:
using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
$endif$using System.Text;
$if$ ($targetframeworkversion$ >= 4.5)using System.Threading.Tasks;
$endif$
namespace $rootnamespace$
{
    public class $safeitemrootname$
    {
    }
}

Od tej pory tworzone klasy będą domyślnie publiczne.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CalculateYear
{
    public class Post
    {
    }
}



PODSUMOWANIE:


Jeżeli męczy Cię dodawanie za każdym razem modyfikatora dostępu public do klasy, to koniecznie zmień sobie szablon nowo tworzonych klas w visual studio. Jak widzisz, nie jest to skomplikowane, a może Ci zaoszczędzić sporo czasu w dłuższej perspektywie. Jeżeli masz problem i nie działa u Ciebie ten szablon, to daj znać w komentarzu, na pewno Ci pomogę.

Poprzedni artykuł - Kilka Prostych Kroków Jak Stworzyć Własnego Snippeta w Visual Studio.
Następny artykuł - Proste Zasady, o Których Musisz Pamiętać, Podczas Obsługi Wyjątków w C#.
Autor artykułu:
Kazimierz Szpin
Kazimierz Szpin
CTO & Founder - FindSolution.pl
Programista C#/.NET. Specjalizuje się w Blazor, ASP.NET Core, ASP.NET MVC, ASP.NET Web API, WPF oraz Windows Forms.
Autor bloga ModestProgrammer.pl
Komentarze (8)
Paweł
PAWEŁ, środa, 19 sierpnia 2020 12:37
Pomocne! Dzięki! Ewentualnie poleciłbym wtyczke "Add New File" - umożliwia za pomocą skrótu klawiaturowego dodanie nowego pliku (klasa interface itd) z modyfikatorem public ;)
Wiktor
WIKTOR, wtorek, 25 sierpnia 2020 14:14
Jednak preferuję dodać nowy szablon niż nadpisywać domyślny. Zawsze mam w głowie, że jeśli MS dokona zmiany w domyślnym szablonie w jakiejś aktualizacji to nadpiszą moje zmiany.
Empek
EMPEK, sobota, 5 września 2020 19:23
fajny myk
Kazimierz Szpin
KAZIMIERZ SZPIN, sobota, 5 września 2020 21:34
Cześć @PAWEŁ, też dobry pomysł :)
Kazimierz Szpin
KAZIMIERZ SZPIN, sobota, 5 września 2020 21:35
Cześć @WIKTOR, masz rację, ale na szczęście akurat ten szablon nie był już dawno zmieniany :)
Kazimierz Szpin
KAZIMIERZ SZPIN, sobota, 5 września 2020 21:36
Cześć @EMPEK, no tak - bardzo ułatwia :)
Krystian
KRYSTIAN, piątek, 28 stycznia 2022 23:16
W folderze IDE nie mam folderu ItemTemplates, jedyne foldery jakie tam sa to: 1045, Automation, CommonExtensions, Extensions,pl, PrivateAssemblies, PublicAssemblies, ShellExtensions
Kazimierz Szpin
KAZIMIERZ SZPIN, niedziela, 30 stycznia 2022 09:59
@KRYSTIAN, jaką masz wersję visual studio? U mnie w Visual Studio 2022 Comunity jest taka ścieżka: C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\ItemTemplates\CSharp\1033
Dodaj komentarz

Wyszukiwarka

© Copyright 2024 modestprogrammer.pl. Wszelkie prawa zastrzeżone. Regulamin. Polityka prywatności. Design by Kazimierz Szpin