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?
Odpowiedz
Są to tak zwane atrybuty - patrz MSDN.
Data Annotations to Customize Data Classes
http://msdn.microsoft.com/en-us/library/dd901590(v=vs.95).aspx
Są attributes.
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
.
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?
To jest poprawna odpowiedź IMO. –
- 1. Co robi ta funkcja generyczna?
- 2. Czy ta prosta funkcja Haskella ma już znaną nazwę?
- 3. Lokalizacja getAccuracy(), co robi ta funkcja?
- 4. Co robi ta konstrukcja Java?
- 5. Co robi ta metoda delegata?
- 6. Co właściwie robi funkcja Process.Dispose()?
- 7. Co robi ta linia javascript?
- 8. Co robi funkcja "mro()"?
- 9. Co robi funkcja .pack()?
- 10. Co dokładnie robi funkcja .select()?
- 11. Co robi funkcja php "przeciążenie"?
- 12. Co ta zagnieżdżona adnotacja robi/dopuszcza?
- 13. Co robi ta instrukcja Intel jmpq?
- 14. Co dokładnie robi funkcja offsetLeftAndRight()?
- 15. Czy ktoś może mi wyjaśnić, co robi ta metoda GetCardinality?
- 16. Co naprawdę robi funkcja StopLoading()?
- 17. Co robi funkcja @ dimen/activity_vertical_margin?
- 18. Co robi funkcja ZAKTUALIZOWANY RESTRICT?
- 19. C# co robi operator ==?
- 20. C++ - co robi [=]?
- 21. funkcja obliczająca numer skrótu, co dokładnie robi i dlaczego?
- 22. Co oznacza ta składnia C++?
- 23. Co robi funkcja ExpressionVisitor.Visit <T>?
- 24. Co Boxen i co robi?
- 25. co robi int() w C++?
- 26. Co oznacza ta linia preprocesora C/C++?
- 27. Co robi funkcja Expression.Compile w Monotouch?
- 28. Co robi funkcja "@comment()" w XPath?
- 29. Czy ta reguła analizy statycznej C++ ma sens?
- 30. Co to jest S_ISREG() i co robi?
To są atrybuty. –
możliwy duplikat [.NET: Jakie są atrybuty?] (Http://stackoverflow.com/questions/20346/net-what-are-attributes) –