Przestrzenie nazw, dyrektywy using i global usings (uwaga)
Organizuj typy za pomocą przestrzeni nazw, importuj przestrzenie nazw przez using (i aliasy), unikaj konfliktów nazw i pamiętaj, że global using jest nowszy niż C# 6.
Przestrzenie nazw, dyrektywy using i global usings (uwaga) to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 2 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 3 lekcji w sumie.
Przegląd przestrzeni nazw i using
Cel: Porządkuj i importuj kod.
- namespace grupuje powiązane typy
- using importuje przestrzenie nazw
- Aliasy rozwiązują konflikty nazw
- global using jest nowszy niż C# 6 (tylko informacja)
Deklarowanie przestrzeni nazw i typu
Zdefiniuj namespace, aby grupować typy; zawsze możesz użyć nazwy w pełni kwalifikowanej, aby uzyskać dostęp do typu.
using System;
namespace MyApp.Models
{
public class User
{
public string Name { get; private set; }
public User(string name) { Name = name; }
}
}
public class Program
{
public static void Main(string[] args)
{
// Fully-qualified name without using
MyApp.Models.User u = new MyApp.Models.User("Ada");
Console.WriteLine(u.Name);
}
}
Podstawy dyrektywy using
Dodaj dyrektywę using, aby zaimportować przestrzeń nazw i móc używać krótkich nazw typów.
using System;
using MyApp.Models; // import the namespace declared previously
namespace MyApp.Models
{
public class User
{
public string Name { get; private set; }
public User(string name) { Name = name; }
}
}
public class Program
{
public static void Main(string[] args)
{
// Short type name thanks to using
User u = new User("Alan");
Console.WriteLine(u.Name);
}
}
Zagnieżdżone przestrzenie nazw i nazwy w pełni kwalifikowane
Przestrzenie nazw mogą być zagnieżdżane. Używaj nazw w pełni kwalifikowanych, gdy chcesz jednoznacznie wskazać typ.
using System;
namespace Company
{
namespace Billing
{
public class Invoice { public int Number; }
}
namespace Support
{
public class Ticket { public int Id; }
}
}
public class Program
{
public static void Main(string[] args)
{
Company.Billing.Invoice inv = new Company.Billing.Invoice();
inv.Number = 1001;
Company.Support.Ticket t = new Company.Support.Ticket();
t.Id = 42;
Console.WriteLine("Invoice " + inv.Number + ", Ticket " + t.Id);
}
}
Alias dyrektywy using
Użyj aliasu using, aby rozróżnić identyczne nazwy typów lub skrócić długie nazwy kwalifikowane.
using System;
// Two classes with the same short name in different namespaces
namespace LibA { public class Logger { public string Name = "A"; } }
namespace LibB { public class Logger { public string Name = "B"; } }
// Create aliases to disambiguate
using ALogger = LibA.Logger;
using BLogger = LibB.Logger;
public class Program
{
public static void Main(string[] args)
{
ALogger a = new ALogger();
BLogger b = new BLogger();
Console.WriteLine(a.Name + " & " + b.Name); // A & B
}
}
Uwaga dotycząca global using i wskazówki
Uwaga: Konstrukcja global using pojawiła się w nowszych wersjach języka C# (nie występuje w C# 6). W C# 6 umieszczaj dyrektywy using na początku każdego pliku.
- Grupuj powiązane typy w przejrzystych przestrzeniach nazw.
- Twórz nazwy krótkie, ale znaczące.
- Używaj aliasów, aby rozwiązywać konflikty.
Znaczenie dyrektywy using
Podsumowanie
Podsumowanie: Używaj namespace do porządkowania typów, a using do importowania ich w poszczególnych plikach. Konflikty rozwiązuj za pomocą aliasów. Global using to nowsza funkcja; w C# 6 umieszczaj dyrektywy using na początku pliku.
Często zadawane pytania
Czy lekcja „Przestrzenie nazw, dyrektywy using i global usings (uwaga)” jest bezpłatna?
Tak — pełny tekst „Przestrzenie nazw, dyrektywy using i global usings (uwaga)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „Przestrzenie nazw, dyrektywy using i global usings (uwaga)”?
Organizuj typy za pomocą przestrzeni nazw, importuj przestrzenie nazw przez using (i aliasy), unikaj konfliktów nazw i pamiętaj, że global using jest nowszy niż C# 6. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C# Academy?
Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 3.
Ile czasu zajmuje lekcja „Przestrzenie nazw, dyrektywy using i global usings (uwaga)”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?
Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- public/internal/protected/private (z uwagą o file)
- Przestrzenie nazw, dyrektywy using i global usings (uwaga)
- Typy częściowe i pliki