CentrumXP.pl » Witamy
CentrumXP.pl
 
Szukaj
Subskrypcja
Powiadomienie e-mailem o nowościach na CentrumXP.pl:
E-mail: Zapisz
Czy zamierzasz pobrać Internet Explorer 9?


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

20. Atrybuty i mechanizm refleksji

Autor: Paweł Kruczkowski    Opublikowano: 5 lutego 2007    Odsłon: 54150    »Skomentuj...
Strona:
Zobacz również:

01. Zmienne, stałe, wyrażenia i odstępy w C# 2.0

02. Usuwanie obiektów

03. Przekazywanie parametrów

04. Przeciążanie metod i konstruktorów

05. Hermetyzacja danych

06. Dziedziczenie i polimorfizm

07. Abstrakcja w C#

08. Porozmawiajmy o klasach

09. Struktury

10. Interfejsy, część 1

11. Interfejsy, część 2

12. Słowniki w C# 2.0

13. Łańcuchy w C# 2.0

14. Wyrażenia regularne

15. Wyjątki - część I

16. Wyjątki - część II

17. Delegaty i zdarzenia

18. Operacje wejścia - wyjścia cz.1

19. Operacje wejścia - wyjścia cz. 2

»Uzyskaj pomoc na forum

Tematem dzisiejszego - ostatniego już w tej części nauki programowania w języku C# 2.0 na łamach portalu CentrumXP.pl – artykułu, będą atrybuty oraz mechanizm refleksji. Pokrótce zdefiniujemy sobie pojęcie atrybutu oraz przybliżymy sobie sposób jego użycia w oparciu o przykłady. Opowiemy sobie również o refleksji: co to jest, jakie ma zalety i wady oraz gdzie ją stosować i w jaki sposób.

Na początku wprowadźmy sobie prawidłowe pojęcie atrybutu. Najprościej mówiąc atrybut to mechanizm, który służy do dodawania do naszego programu metadanych za pomocą instrukcji bądź innych danych. Metadane to informacje jakie są przechowywane w plikach wykonywalnych (pliki z rozszerzeniem .exe czy .dll), i które opisują typy czy metody umieszczone w tych plikach. Z atrybutami ściśle powiązany jest mechanizm refleksji, gdyż program używa go do odczytu własnych metadanych bądź metadanych innych programów. Innymi słowy, nasz program „rzuca refleksję” sam na siebie bądź na program, z którego chcemy sczytać właśnie metadane, a następnie te metadane można wyświetlić na ekranie komputera lub dzięki nim zmodyfikować dalsze działanie naszej aplikacji.

Atrybuty są dostarczane nie tylko przez system (przez środowisko CLR). Możemy bowiem tworzyć własne atrybuty i używać ich do własnych celów (najczęściej robi się tak przy używaniu mechanizmu refleksji). Jednak większość programistów używa tych wbudowanych atrybutów.

Powróćmy jeszcze na chwilkę do definicji atrybutów. Atrybuty to obiekty, które reprezentują dane wiązane z pewnym elementem w programie. Elementy te nazywamy adresatami (ang. target) atrybutu.

Poniższa tabela prezentuje wszystkie możliwe adresaty atrybutów:

Nazwa adresata Zastosowanie
All Można stosować do dowolnego elementu: pliku wykonywalnego, konstruktora, metody, klasy, zdarzenia, pola, właściwości czy struktury
Assembly Można stosować do samego podzespołu (pliku wykonywalnego)
Class Można stosować do klasy
Constructor Można stosować do konstruktora
Delegate Można stosować do delegata
Enum Można stosować do wyliczenia
Event Można stosować do zdarzenia
Field Można stosować do pola
Interface Można stosować do interfejsu

Method Można stosować do metody
Parametr Można stosować do parametru metody
Property Można stosować do właściwości (get i set)
ReturnValue Można stosować do zwracanej wartości
Struct Można stosować do struktury

Aby przypisać atrybut do adresata musimy umieścić go w nawiasach kwadratowych przed elementem docelowym (klasą, metodą czy właściwością etc.). Na przykład:

[Serializable]
      class MojaKlasa

      { … }

W powyższym fragmencie kodu znacznik atrybutu znajduje się w nawiasach kwadratowych bezpośrednio przed adresatem (czyli klasą MojaKlasa). Tak na marginesie, atrybut [Serializable] to jeden z najczęściej używanych atrybutów przez programistę. Umożliwia on serializację klasy na np. dysk lub poprzez sieć komputerową.


1 2 3 4 5 Dalej» 

Aktualna ocena to: 3,77

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 20. Atrybuty i mechanizm refleksji

Dodaj komentarz»

Divo 27 grudnia 2007, 16:49

Świetny kurs :) Szybciutko i łatwo można przejść z C++ na C#. Polecam i pozdrawiam autorów :) Dziękuję za trud jaki w to włożyliście :)

Mafia 8 lutego 2008, 17:06

Mam pytanko czy da się zmienić aby niebyło ramki CMD tylko coś innego

Perykles 25 kwietnia 2008, 13:29

Tak, Divo, z C++ przejśc można ale, podsumowując, jest to kiepski kurs dla początkujących, zwłaszcza jak w pierwszym temacie o tworzeniu aplikacji jest mowa o konstruktorach klas... Polecam jakąś dobrą książkę, nie zaś ten kurs.

Rafalek 24 maja 2009, 17:57

Uważam że kurs jest świetny. Wiadomo że jak pozna się podstawy reszta idzie do przodu można programować bardzo długo na studiach nie wiedząc ani nie rozumiejąc sensu. Tutaj jest napisane jak dla debila czyli idealnie jak dla nauki.

arczikb 16 września 2009, 10:27

Zgadzam się że kurs jest całkiem niezły, przede wszystkim<br />dla osób mających chociaż minimalne podstawy w programowaniu.
 
 

andymen 10 października 2009, 2:12

Dałem 5 gwiazdek, ale brakuje mi w tej lekcji omówienia atrybutów wbudowanych:(

programmer 10 lutego 2010, 10:14

widze tutaj jeden obiektywny komentarz a reszte to sobie admin sam napisał ;( kurs jest zagmatwany, niestety ;(

jvjv 28 czerwca 2011, 12:41

Przydaloby sie wiecej przykladow zastosowan mechanizmu niz tylko autorzy funkcji i nazwy exeka.

qwer 4 października 2011, 15:05

Przeczytałem cały kurs na sucho (bez programowania). W pierwszej części jeszcze się orientowałem co i jak, ale w drugiej zgubiłem się kompletnie. Dla mnie to przesiadka z ANSI C na C#, na obiekty jest szokiem. Mała uwaga. Przydało by się opisy i kod trzymać na tej samej stronie. Skakanie po stronach dodatkowo utrudnia orientację.


Dodaj swój komentarz

»Zasady udzielania komentarzy

Autor:  
Komentarz:
Dodaj komentarz
© 2012 Onex Group
Onex Group O Onex Group  |  O CentrumXP.pl  |  Kontakt  |  Reklama
Nasze serwisy: CentrumXP.plXboxSpot.pl  |  Jama Mastaha