Как мне удалить слово «атрибут» из intellisense / параметры автозаполнения в моем пользовательском классе?

#c# #autocomplete #attributes #intellisense

#c# #автозаполнение #атрибуты #intellisense

Вопрос:

Я бы хотел, чтобы в моих пользовательских атрибутах не отображалось слово Attribute, точно так же, как в атрибутах ‘builtin’.

«TooltipAttribute» — это класс. Когда я набираю «[tool», у меня есть только возможность дополнить его «[Tooltip» (tooltipx на изображении не имеет значения).

Я хочу, чтобы мой класс вел себя точно так же, но когда я набираю «[dispif», у меня есть только возможность дополнить его «[DisplayIfAttribute». Я никогда раньше не использовал атрибуты. Если я вручную исправлю код так, чтобы он читался как «[DisplayIf (независимо от того)]», он работает правильно; Я просто хочу, чтобы параметр автозаполнения не включал «атрибут».

Я использую версию Monodevelop, которая поставляется с Unity 4.что-то.

На этом изображении показано мое автозаполнение, дающее мне параметры: https://www.dropbox.com/s/pca109hili5edjm/help attribute.png

Комментарии:

1. Вы могли бы посмотреть на исходный код для ToolTipAttribute и посмотреть, применен ли к нему атрибут, который дает короткое имя или что-то в этом роде? Похоже, что это специфично для monodevelop.

2. [AttributeUsage(AttributeTargets.Field, Inherited = true, AllowMultiple = false)] Эта система комментариев побеждает меня. 🙂 Это единственное, что я вижу во всплывающей подсказке, кроме объявлений класса / поля, и добавление этого к моему ничего не дает (сюрприз). Я думаю, что это может быть специфично для monodevelop — у них действительно много странностей форматирования — я посмотрю, смогу ли я найти что-нибудь в любой их поддержке.

3. monodev снова вычеркивает (out) — forum.unity3d.com/threads /…

4. Ну, привет… это с открытым исходным кодом. Вы можете пойти и изменить IDE самостоятельно, если хотите! (Нет, я, честно говоря, не верю, что это разумное решение.)

Ответ №1:

Если имя вашего класса заканчивается на Attribute, а класс наследуется от System.Атрибут, вы увидите «сокращенное» имя в intellisense, когда введете атрибут в квадратные скобки [] .

 public class TestAttribute : Attribute
{
}
  

С другой стороны, вы увидите полное имя, если ссылаетесь на него в другом коде.

Комментарии:

1. Но я вижу «DisplayIfAttribute» при вводе его в квадратные скобки. Наследование непосредственно из Attribute не меняет это поведение. Возможно, это ошибка, специфичная для Monodevelop.