Przestrzenie nazw i dyrektywy
Część sekcji Programowanie obiektowe ścieżki C# w Coddy. Lekcja 2 z 70.
Przestrzenie nazw porządkują kod i zapobiegają konfliktom nazw. Grupują powiązane klasy, tak jak foldery porządkują pliki.
Utwórz klasę wewnątrz przestrzeni nazw
namespace MyApp.Models
{
public class User
{
public string Name { get; set; }
public User(string name)
{
Name = name;
}
}
}Użyj dyrektywy using, aby uzyskać dostęp do klas z innej przestrzeni nazw
using System;
using MyApp.Models;
class Program
{
static void Main()
{
User user = new User("Alice");
Console.WriteLine(user.Name);
}
}Wynik:
AliceBez dyrektywy using musisz użyć w pełni kwalifikowanej nazwy
MyApp.Models.User user = new MyApp.Models.User("Bob");Dyrektywa using pozwala odwoływać się do typów w przestrzeni nazw bez wpisywania za każdym razem pełnej ścieżki przestrzeni nazw. System to często używana przestrzeń nazw zawierająca podstawowe klasy, takie jak Console.
Wyzwanie
ŚredniMasz klasę User w przestrzeni nazw MyApp.Models. Dodaj odpowiednią dyrektywę using w pliku Program.cs, aby użyć klasy User bez pełnej nazwy kwalifikowanej.
Spróbuj swoich sił
using System;
// TODO: Dodaj dyrektywę using dla MyApp.Models
class Program
{
static void Main()
{
string userName = Console.ReadLine();
// TODO: Utwórz obiekt User, używając userName
// TODO: Wypisz "User created: ", a następnie wartość Name użytkownika
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Programowanie obiektowe
1Podstawy programowania obiektowego
Pliki zewnętrznePrzestrzenie nazw i dyrektywyWprowadzenie do klas i obiektówSłowo kluczowe „this”Metody i parametryPola a właściwościKonstruktoryInicjalizatory obiektówPodsumowanie — prosty kalkulator4Dziedziczenie
Podstawowa składnia dziedziczenia (:)Słowo kluczowe 'base'Słowa kluczowe virtual i overrideKlasy sealedBazowa klasa 'object'Powtórzenie – hierarchia pracowników7Zaawansowane funkcje
Przeciążanie operatorówIndeksery (this[])Nadpisywanie ToString()Metody rozszerzającePodsumowanie – własna lista2Właściwości i składowe statyczne
Właściwości automatyczneWłaściwości tylko do odczytu i zapisuPola i metody statyczneKlasy statyczneSkładowe z ciałem wyrażeniowym5Polimorfizm i interfejsy
Polimorfizm czasu kompilacji a czasu wykonaniaInterfejs a klasa abstrakcyjnaWiele interfejsówJawne implementowanie interfejsówRzutowanie w górę i w dółPowtórka — kalkulator kształtów8Zaawansowane koncepcje OOP
Kompozycja zamiast dziedziczeniaTypy generyczne (klasy i metody)Delegaty i zdarzeniaAtrybuty i refleksjaIDisposable i instrukcja usingPodstawy wstrzykiwania zależności11Wzorce projektowe, część 2
Wzorzec poleceniaWzorzec adapteraWzorzec dekoratoraWzorzec metody szablonowejWzorzec stanuWzorzec kompozytu3Architektura klas
Dane instancji a dane statyczneSłowa kluczowe 'readonly' i 'const'Pola zapasowePowtórzenie — menedżer kont bankowych6Hermetyzacja
Modyfikatory dostępuWłaściwości w hermetyzacjiImplementacja ukrywania danychWzorce niezmiennościPowtórka — dane studentów9Argumenty zmiennej liczby
Słowo kluczowe „params”Parametry opcjonalneArgumenty nazwanePrzeciążanie metodPoćwicz samodzielnie: Kompilator C# online