■93615 / inTopicNo.2) |
Re[1]: クラスの表示順を変える方法 |
□投稿者/ 魔界の仮面弁士 (2543回)-(2019/12/27(Fri) 09:23:29)
|
■No93612 (パパす さん) に返信 > 定義した順番で表示したいのですが > そのようなことは可能でしょうか?
実際のところ、宣言順を考慮していないクラスも多数あると思いますので、 すべてのクラスにその並びが適用されてしまうと、メンバー数の多いクラスでは 探し難くなってしまい、むしろデバッグしにくくなるかもしれません。
将来的に、Visual Studio 側が右クリック等で並び順を切り替えられるように なれば良いのですが、現状は型単位で並び順を提供するぐらいしか無いと思います。
たとえばこんな感じ。
※現状の VB は戻り値を ByRef にできないので、 値を変更する時は [列ビュー] から行う必要があります。
<DebuggerTypeProxy(GetType(Animal_Class.Animal_ClassDebugView))> Public Class Animal_Class Property Horse As Byte Property Cat As Byte Property Dog As Byte
Friend Class Animal_ClassDebugView Public Sub New(owner As Animal_Class) Keys = Array.ConvertAll( GetType(Animal_Class).GetProperties(), Function(p) New KeyValuePair(Of String, Byte)(p.Name, CByte(p.GetValue(owner))) ) End Sub <DebuggerBrowsable(DebuggerBrowsableState.RootHidden)> Public ReadOnly Property Keys As KeyValuePair(Of String, Byte)() End Class End Class
そもそもデバッガにおいて、どの順番で表示されるべきかは、 いろいろな意見があるようです。
Unicode 文字列のコードポイント順が良いとか、 現在のロケールの照合順序に並ぶべきとか、 アンダーバー付きメンバーを優先表示したいとか、 宣言順(リフレクションで列挙される順)のままで良いとか。
たとえば今月だと、このような提案がありました。 https://github.com/dotnet/roslyn/issues/40179
|
|