C#の等しい数(==)演算子:いつ失敗するのか、どのように対処するか
c#
コンピューティングシンボルは、2つのオブジェクトの等しい性質を比較するために使用されます。これは非常に便利です。 操作シンボルはすべてのタイプで一般的に使用されていますが、場合によっては使用することはできません。
==
例は、比較的制約のない汎用タイプです。問題で提供されているコードフラグメントは、2つのタイプの一般的なパラメーターを比較しようとするため、コンパイルできません。 tに制約がない場合、このタイプはこの場合、==
オペレーターを適用できません。
およびbool Compare<T>(T x, T y) { return x == y; }
同等の型には、所定の==
オペレーターがありません。値を比較するために
演算子があります。 int
したがって、tの制約が指定されていない場合、コンパイラは、それが所定のタイプの参照タイプを持つfloat
演算子として使用されるか、値タイプの==
メソッドを使用するかを決定することはできません。この問題を解決するために、Tは参照型に制約されます。 Equals
string
ここで、タイプを型パラメーターとして参照すると仮定します。この場合、オペレーターは、事前に定義された参照を比較します。これは、オペレーターの重い負荷バージョンではありません。これは、事前定義された参照がより基本的で信頼性が高いと見なされるためです。 ==
インターフェイスまたは==
staticメソッドを使用できます。これらの方法は、そのタイプに関係なく、標準化された比較方法を提供します。 Equals
以上がC# 's ==演算子はいつ失敗し、どのように処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。