私は現在、各ノードが別のものと同等であるかどうかを知ることができるノードのツリー構造に取り組んでいます。各ノードクラスは、QueryNodeのサブクラスです。 が同等かどうかを確認するために、彼らは同じサブクラスのものであり、同等のメンバー値を持っている場合、ノードは、比較(関係するより多くの事があるのです、もちろん、これはバグ私をその一部です):私はこれがないかもしれないと感じこのC#コードの型チェックの代替方法はありますか?
class VersionNode : QueryNode
{
VersionModifier m_versionModifier;
internal VersionModifier VersionModifier
{ get { return this.m_versionModifier; } }
// ...
protected override bool AreMembersEquivalent(QueryNode other)
{
VersionNode otherNodeAsVersionNode = other as VersionNode;
if (otherNodeAsVersionNode == null)
return false;
else
return (this.m_versionModifier == otherNodeAsVersionNode.VersionModifier);
}
}
キャスティングが必要なため、最適な解決策になります。これを行うよりエレガントな方法はありますか?
、あなたのタブのサイズは2つのスペースを作る場合は、コードをより「エレガント」になりますし、ローカル変数名を短くします。 – leppie
あなたは他のインスタンスのm_versionModifierに直接アクセスできます。プロパティを経由する必要はありません:) 'this'も不要です。 – leppie
私はPaul GrahamのAnsi Common Lispを読んでからスタイリッシュなものを探すのに冗長なコードを好む。 –