CentrumXP.pl » Witamy
CentrumXP.pl
 
Szukaj
Subskrypcja
Powiadomienie e-mailem o nowościach na CentrumXP.pl:
E-mail: Zapisz
Czy byłbyś zainteresowany mobilną wersją Portalu CentrumXP.mobi dla komórek?

CentrumXP.pl » Microsoft .NET » Kurs C#, cz. I » Dodaj do ulubionych Dodaj do ulubionych   Dodaj do ulubionych Wersja do wydruku

18. Przestrzenie nazw (namespaces)

Autor: Daniel Celeda    Opublikowano: 6 czerwca 2006    Odsłon: 36588    »Skomentuj...
Strona 1 z 2  Następna»
Zobacz również:

01. "Programowanie" - z czym to się je?

02. Programowanie obiektowe

03. Do czego potrzebne jest nam Visual Studio 2005

04. Konfiguracja i obsługa C# 2005 Express Edition

05. Tworzenie solution i nowych projektów

06. Klasy i obiekty

07. Tworzenie oraz inicjalizacja obiektów

08. Operatory arytmetyczne

09. Porozmawiajmy o „stringach”

10. Typy proste i referencyjne

11. Wartości logiczne

12. Inne operatory logiczne

13. Instrukcje iteracyjne (tzw. pętle) - cz. I

14. Instrukcje iteracyjne (tzw. pętle) - cz. II

15. Tablice

16. Kolekcje

17. Typy generyczne (generics)

19. Modyfikatory dostępu

20. Metody statyczne oraz metody instancyjne

»Uzyskaj pomoc na forum

Do tej pory używaliśmy przestrzeni nazw stworzonych na potrzeby platformy .NET. Przypomnijmy czym są owe przestrzenie.
Są to zbiory zdefiniowanych klas, pogrupowanych w pewnego rodzaju „paczki”. Grupujemy klasy po to aby łatwiej je odnaleźć w przyszłości oraz aby uniknąć konfliktów.
Odpowiednia hierarchia przestrzeni nazw pozwala na łatwe i szybkie odnajdywanie potrzebnych klas. Jeśli nasz program używałby klas opisujących rodzaje budynków, przestrzenie nazw mogły wyglądać następująco:

Budynki,
Budynki.Duze (zawierający klasy Zamek, Wieżowiec, Blok),
Budynki.Male (zawierająca klasy Lepianka, Domek).

Kiedy może pojawić się konflikt?
Wyobraźmy sobie, że mamy dwie różne klasy „Zamek”. Pierwsza definiuje zamek będący budynkiem, druga natomiast zamek błyskawiczny. Gdyby nie było przestrzeni nazw, poniższy kod nie określałby jednoznacznie o jaką klasę nam chodzi.

Zamek obiekt = new Zamek();

Dlatego należałoby umieści definicje tych klas w różnych przestrzeniach nazw np. „Budynki.Duze” oraz „Ubrania.Akcesoria”. Kod należałoby zmodyfikować na następująco:

Budynki.Duze.Zamek obiekt1 = new Budynki.Duze.Zamek();
Ubrania.Akcesoria.Zamek obiekt2 = new Ubrania.Akcesoria.Zamek();
 

Wbudowane przestrzenie nazw

.NET udostępnia nam ogromną ilość zdefiniowanych przestrzeni nazw wraz z klasami. Z najważniejszymi powinniśmy się zapoznać.
System – najważniejsza i najpowszechniejsza przestrzeń, definiuje podstawowe klasy oraz jest korzeniem wielu podrzędnych przestrzeni,
System.Collections – przechowuje klasy będące kolekcjami,
System.Data – obsługa operacji na danych, głównie do pracy z bazami danych,
System.Drawing – obsługa grafiki (rysowanie po ekranie),
System.IO – operacje wejścia/wyjścia, a więc np. operacje na plikach,
System.Web – klasy służące do tworzenia stron internetowych w technologii ASP.NET,
System.Windows.Forms – programowanie w Windows, a więc tworzenie okienek, przycisków itp.

Słowo kluczowe „using”

Do tej pory używaliśmy już niejednokrotnie klas zdefiniowanych w jakiejś przestrzeni nazw np. System.Console. Zgodzicie się na pewno ze mną, że ciągłe powtarzanie długiej nazwy przestrzeni jest niewygodne, szczególnie gdy często chcemy wypisywać tekst na ekranie. Czy nie wygodniej byłoby raz zadeklarować jakich przestrzeni używamy w naszej aplikacji i gdzie mają być szukane używane przez nas klasy (w jakiej przestrzeni)? Taki program wyglądałby tak:

namespace Przestrzenie
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Witam !");
            Console.ReadKey();
        }
    }
}

Jednak oczywiście nie zadziała. Jest jednak na to sposób. Po prostu wcześniej musimy zadeklarować jakich przestrzeni nazw używamy. Możemy tego dokonać z pomocą słowa „using” umieszczanego na samym początku naszego programu. Po słówku tym wypisujemy przestrzeń nazw, z której to klas będziemy chcieli używać.

using System;
 
namespace Przestrzenie
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Witam !");
            Console.ReadKey();
        }
    }
}

I oczekiwany wynik:

Możemy użyć „using” wielokrotnie, w przypadku gdy chcemy użyć kilku przestrzeni nazw.

using System;
using System.Collections;
 
namespace Przestrzenie
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Witam !");
            Console.ReadKey();
        }
    }
}

Przestrzeń System.Collections poznamy w następnych artykułach.


1 2 Dalej» 

Aktualna ocena to: 1,96

Oceń artykuł...
Porażka Kiepski Taki Sobie Dobry Super!


Tagi:  

A teraz:    Dodaj do ulubionych Dodaj do ulubionych    Wydrukuj Wydrukuj    Wyślij link znajomemu Wyślij link znajomemu    Skomentuj Skomentuj

Komentarze do 18. Przestrzenie nazw (namespaces)

Dodaj komentarz»

m010ch 7 czerwca 2006, 22:48

Ten fragment kursu wygląda jak niedokończony albo mu czegoś brakuje w połowie - gdzie definicja klasy Figura() w klasie DefinicjeFigur.cs? Skoro wywołujemy ją w klasie KlasaGlowna.cs, to chyba wypadało by ją najpierw napisać? ;)

m010ch 15 czerwca 2006, 13:36

Nikt się nie przyznaje do tekstu? Bo część związana z tworzeniem własnych przestrzeni nazw jest kompletnie absurdalnie napisana, niedokończona i nieprzydatna - odniesie się ktoś do tego?

hlehle 21 czerwca 2006, 2:45

Witam. Faktycznie coś jest nie tak. Postaram się odnaleźć ten artykuł (kurs był pisany dawno temu) i sprawdzić, której części brakuje.

stet 8 sierpnia 2006, 22:55

Troche czasu minelo a tu dalej artykul jest nie dokonczony.

Arcodes 11 sierpnia 2006, 17:30

Będzie dokończony ten artykuł ??

Parn 19 maja 2007, 22:34

I kolejny rok minął a artykuł nadal nie ma zakończenia :(

Gibon 25 czerwca 2007, 11:25

I tak mija czas, a artykułu jak nie było, tak nie ma :[

Sfinks 11 lipca 2007, 12:26

A nie można zamiast pojedynczego wywołania przestrzeni wywołać od razu np wszystkie. jakoś usaing namespace System albo jakoś tak?.

Flamaster 16 sierpnia 2007, 14:13

nie trzeba uzywac w tym przypadku zadnego "using", bo to ta sama przestrzen nazw (Figury). Jezeli w pliku "DefinicjeFigur.cs" zostawimy "namespace Figury", a w klasie glownej uzyjemy innej przestrzeni nazw, wtedy potrzebne dopiero bedzie "using Figury;" ;) a co do samego tworzenia instancji klasy, to juz bylo w poprzednich rozdzialach- bedzie dokladnie tak samo.

Kot-ek 19 listopada 2007, 12:40

Dziwny ten rozdział. Napisane zostało: "Przestrzeń System.Collections poznamy w następnych artykułach.", a poznawaliśmy ją wcześniej - przy okazji kolekcji (co prawda pobieżnie, ale zawsze).

adambart84 21 listopada 2007, 10:01

No tak. Czas leci a kursu nikt nie poprawia.Szkoda bo poprzednie części były naprawdę niezłe.

Twist 25 lipca 2008, 14:59

:(

Petro136 26 lipca 2008, 23:25

Niekończąca się opowieść

szofer777 24 sierpnia 2008, 18:30

non comentos - uzupełni to ktoś w końcu ??

sajmon 28 grudnia 2008, 16:35

No by się przydało jak by to w końcu ktoś dokończył. Ale chyba na próżno piszemy nasze komentarze jak juz nikt ich i tak nie czyta już, poza nami..

sekla 1 lutego 2009, 23:32

wyglada na to, ze te przestrzenie nazw to nic innego, jak pakiety z Javy. Dlatego zainteresowani moga sobie przejrzec co nieco o pakietach w Javie :) Co do zaimportowania od razu kilku przestrzeni nazw, to mozna sprobowac podejscia z Javy:
using System.*
 
W Javie polecenie:
import java.lang.*
 
spowoduje uzywanie w danym pliku wszystkich skladnikow pakietu java.lang lacznie z pakietami wchodzacymi w jego sklad. Mozliwe, ze polecenie:
using System.*
 
spowoduje to samo w C# (nie sprawdzalem). Wtedy za jednym zamachem mielibysmy uzyte przestrzenie System, System.Collections, System.Console itd.

eh 21 sierpnia 2009, 14:38

ten kurs jest na idealnej stronie - centrumxp
uosabia on wszystko co kojarzy mi sie z microsoftem
czyli ...tu zrobimy tak,tutaj troszke, ale teraz zrobimy co innego, a wy i tak musicie to wiedziec to se poszukajcie, aa taki bedzie standard bo nie umiemy lepiej a my wiemy najlepiej


Dodaj swój komentarz

»Zasady udzielania komentarzy

Autor:  
Komentarz:
Dodaj komentarz
© 2009 Onex Group
Onex Group O Onex Group  |  O CentrumXP.pl  |  Kontakt  |  Reklama
Nasze serwisy: CentrumXP.plKomputer w firmie  |  XboxSpot.pl  |  Live Blog  |  Jama MastahaDevelopers.pl