Атрибуты против комментариев - PullRequest
2 голосов
/ 20 апреля 2009

Какие преимущества имеют атрибуты по сравнению с использованием комментариев (или XML-комментариев на уровне подписи)? Я помню, что где-то видел раздел в разделе C # на этом сайте, но сейчас не могу его найти.

Кроме того, возможно ли применить атрибут к определенному параметру в методе (это был вопрос интервью, который я где-то читал)?

Ответы [ 6 ]

4 голосов
/ 20 апреля 2009

Комментарии предназначены только для разработчиков, чтобы они могли видеть, что такое классы и методы.

Атрибуты полезны для решения, которое вы разрабатываете, поскольку вы можете использовать их тогда, чтобы описать, как работать с классом, для которого вы добавляете атрибуты.

Да, вы можете использовать атрибуты для параметров, но, по моему опыту, для некоторого сложного кода это целесообразно изменить, чтобы ваши параметры можно было сгруппировать в структуру или класс.

Вот ссылка на атрибуты:

http://en.csharp -online.net / Attributes

Надеюсь, это поможет

2 голосов
/ 20 апреля 2009

Я не понимаю, как связаны атрибуты и комментарии; Атрибуты добавляют определенную функциональность классу / объекту, в то время как комментарии должны быть встроенной документацией.

Можно упростить добавление метаданных с помощью атрибутов (например, использовать атрибут Author (имя строки) для обозначения автора класса и т. Д.) И, таким образом, облегчить извлечение этих метаданных, но в противном случае я не не вижу сравнения.

1 голос
/ 20 апреля 2009

Вообще говоря, вы не можете сравнивать атрибуты XML-комментариев. Последние в конечном счете не имеют абсолютно никакого отношения к коду, тогда как атрибуты остаются в скомпилированной сборке в разделе метаданных.

Что касается второй части вашего вопроса, это действительно возможно:

[return:MySecondAttribute] void Foo([MyAttribute] int bar)

Здесь MySecondAttribute применяется к возвращаемому значению, а MyAttribute применяется к параметру bar. Замените return: на assembly:, чтобы применить атрибут на уровне сборки.

1 голос
/ 20 апреля 2009

Настраиваемые атрибуты предназначены для доступа во время выполнения с использованием отражения. Их можно применять к параметрам метода, а также к параметрам общего типа, типам возвращаемых методов, сборкам, объявлениям типа, членам типа и модулям.

1 голос
/ 20 апреля 2009

Обычно атрибуты используются, когда вы планируете каким-то образом обработать исходный код программно (обычно с отражением .NET). Чтобы сделать то же самое с комментариями XML, вам необходимо иметь специальное соглашение для формата ваших комментариев и анализировать сам исходный файл, и это соглашение не может быть легко проверено во время компиляции, как атрибуты.

1 голос
/ 20 апреля 2009

Атрибуты доступны во время выполнения, что не относится к комментариям.

Фактически, атрибуты и комментарии - это две совершенно разные вещи, которые служат двум совершенно различным целям.

Комментарии направлены на предоставление подсказок программисту, читающему ваш код, в то время как атрибуты направлены на предоставление подсказок компилятору / среде выполнения, «читающей» ваш код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...