#c# #autocomplete #attributes #intellisense
#c# #автозаполнение #атрибуты #intellisense
Вопрос:
Я бы хотел, чтобы в моих пользовательских атрибутах не отображалось слово Attribute, точно так же, как в атрибутах ‘builtin’.
«TooltipAttribute» — это класс. Когда я набираю «[tool», у меня есть только возможность дополнить его «[Tooltip» (tooltipx на изображении не имеет значения).
Я хочу, чтобы мой класс вел себя точно так же, но когда я набираю «[dispif», у меня есть только возможность дополнить его «[DisplayIfAttribute». Я никогда раньше не использовал атрибуты. Если я вручную исправлю код так, чтобы он читался как «[DisplayIf (независимо от того)]», он работает правильно; Я просто хочу, чтобы параметр автозаполнения не включал «атрибут».
Я использую версию Monodevelop, которая поставляется с Unity 4.что-то.
На этом изображении показано мое автозаполнение, дающее мне параметры:
Комментарии:
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.