2011-08-26 33 views
5

Jestem nowicjuszem C#. Widziałem ten kawałek kodu w otwartym kodzie źródłowym. Linie zaczynają się od otwartych nawiasów kwadratowych. Co robią? odwołanie do atrybutów obiektu nadrzędnego? Jeśli tak, dlaczego są one potrzebne? Czy istnieje nazwa tego stylu kodowania? Dziękujemy!Czy ta funkcja C# ma nazwę i co robi?

+2

To są atrybuty. –

+1

możliwy duplikat [.NET: Jakie są atrybuty?] (Http://stackoverflow.com/questions/20346/net-what-are-attributes) –

Odpowiedz

4

Są to tak zwane atrybuty - patrz MSDN.

4

Przeczytaj wszystko o C# Attributes. Są to w zasadzie instancje klas, które łączą się z innymi właściwościami/metodami/klasami/elementami kodu. W tym przypadku, po prostu zdefiniowano nowe pole o nazwie StaffID typu System.Nullable<...>, do którego dołączono obiekt DataMap.

10

Wszystko to jest objęte pojęciem metaprogramowania. W .NET znajduje się książka o nazwie Metraprogramming (Manning). Zasadniczo przypisujesz kod do danych, które później mogą być interpretowane w środowisku wykonawczym przez inny kod za pomocą odbicia. Jest to popularne także w Javie i Ruby. Zobaczysz go w ASP.NET MVC, WCF i wiele więcej. Wprowadza także inną praktykę programowania znaną jako Deklaratywne programowanie. Mówisz "co chcesz robić", i niech coś innego określa "jak". Jest naprawdę duży w językach programowania funkcjonalnego i po prostu programowanie w tym zakresie. Zobacz ten post o tym, jak analizować atrybuty. How do I GetCustomAttributes?

+2

To jest poprawna odpowiedź IMO. –