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

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
Programista C#/.NET. Głównie pisze aplikacje w ASP.NET MVC, WPF oraz Windows Forms. Specjalizuje się w testach jednostkowych.
Autor bloga ModestProgrammer.pl
Komentarze (6)
Paweł
PAWEŁ, 19 sierpnia 2020 10: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, 25 sierpnia 2020 12: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, 5 września 2020 17:23
fajny myk
Kazimierz Szpin
KAZIMIERZ SZPIN, 5 września 2020 19:34
Cześć @PAWEŁ, też dobry pomysł :)
Kazimierz Szpin
KAZIMIERZ SZPIN, 5 września 2020 19:35
Cześć @WIKTOR, masz rację, ale na szczęście akurat ten szablon nie był już dawno zmieniany :)
Kazimierz Szpin
KAZIMIERZ SZPIN, 5 września 2020 19:36
Cześć @EMPEK, no tak - bardzo ułatwia :)
Dodaj komentarz
© Copyright 2020 modestprogrammer.pl. Wszelkie prawa zastrzeżone. Polityka prywatności. Design by Kazimierz Szpin