デバッグ時にList<T>
の値を検査しようとしましたが、をオーバーライドすると "子供を評価できませんでした"私はVS2017を使用してUnity3D 5.6.0fプロジェクトオーバーライドされたToString()を検査するときに "子どもを評価できませんでした"
サンプルコードのデバッグいます:
void Start() {
//if Sphere.ToString() is commented out, the contents are displayed correctly
var obstacles = parser.ParseFile(Variables.Paths.DefaultScene).ToList();
}
//...
[System.Diagnostics.DebuggerDisplay("{ToString()}")]//with or without this attribute
public class Sphere
{
public Vector3 Center { get; set; }
public float Radius { get; set; }
public override string ToString()
{
return "[r: " + Radius + " c: " + Center + "]";
}
}
T
は、クラスまたは構造体であるかどうかは、任意の効果を持っていないようだ、DebuggerDisplay
属性も同様に効果がありません - リストはできません無関係に検査される。
var tmp = new Sphere();
しかしtmp
のToString()
正しく表示されます。この問題をどうやって解決するのですか?
'DebuggerDisplay'はとても今までにどのような影響を与えないの質問有無で述べたように。 「子どもは評価できませんでした」は、リストを検査しようとすると常に生成されます。 – wondra
ToString()を削除しようとしましたが、これをヘッダーに追加しましたか? '[System.Diagnostics.DebuggerDisplay(" [r:{Radius} c:{Center}] ")]' –