Are there any C# attributes that I can apply to class members, to change the way they appear in the Intellisense listings? This popped into my head when I was building a class with many static constants, and I (briefly!) wanted it to look like an enumeration in Intellisense.
Yes, that's silly.
But it got me thinking - is there any way some crazy programmer can make a class members appear differently in the Intellisense? Make fields look like properties, etc?
For instance, there's the Obsolete
attribute:
[Obsolete("Stop using this. Really. It's old.")]
public int VariableThatIsReallyOld;
Which prefixes the word [obsolete]
to the description of VariableThatIsReallyOld
.
There's the DebuggerDisplay attribute described here.
I tend to think that manipulating the comments is a much better proposition.
///<summary>
/// Bomb!
///</summary>
///<example></example><value></value><![CDATA[]]><param name="ss"></param><exception cref="ss"></exception><remarks></remarks>
///<returns></returns>
If you dig into the options available in the comment structure(which the intellisense and compiler understands) like <example>,<include>,<see>,<seealso>,<exception>
etc, you can pretty get all the functionality sans performance dip introduced by the attribute.
Turns out there also some other attributes at Custom intellisense for server controls? (But the search continues!)
[EditorBrowsable(EditorBrowsableState.Never)]