-1
は、私はクラスを知っているwhitout 2つのオブジェクトbetwen変更を取得するための方法を作るためにreflexibeオブジェクトをテストしていると私はこれを得た:C#の反射オブジェクト、10ではなく10?
名、apellidoとotromasは文字列です。 edadはintです。
は、私はクラスを知っているwhitout 2つのオブジェクトbetwen変更を取得するための方法を作るためにreflexibeオブジェクトをテストしていると私はこれを得た:C#の反射オブジェクト、10ではなく10?
名、apellidoとotromasは文字列です。 edadはintです。
それは、このcenarioでobject.Equals(value1, value2)
を使用するのが最善です。 ==記号は実際にobject.ReferenceEquals
を実行し、両方のオブジェクトのメモリアドレスが実際の値ではなく同じかどうかを確認します。
var value1 = (object)1;
var value2 = (object)1;
Console.WriteLine(value1 == value2); // False
Console.WriteLine(object.ReferenceEquals(value1, value2)); // False
Console.WriteLine(value1.Equals(value2)); // True
Console.WriteLine(object.Equals(value1, value2)); // True
、その優れたnullにVALUE1を変更する次の例では、例外が
var value1 = (object)null;
var value2 = (object)1;
Console.WriteLine(value1 == value2); // False
Console.WriteLine(object.ReferenceEquals(value1, value2)); // False
Console.WriteLine(value1.Equals(value2)); // NullReferenceException
Console.WriteLine(object.Equals(value1, value2)); // False
そのにスローされますので、
object.Equals
代わりのvalue1.Equals
を使用するオブジェクトを使用しているため、オブジェクトが非常によいですよく同じではありません。それを比較するためにant intに変換してみてください。 'Convert.ToInt32(value)!= Convert.ToInt32(value2)'これのちょうどの数字が有効な場合 – EpicKipまたは 'value.Equals(value2)'を使用してください。参照equalityを最初にチェックするオブジェクトの '=='演算子。 'Equals'を使用すると、具体的な型のオーバーロードを呼び出す –
あなたはその値を比較したい場合には、それらを値の型にキャストしなければなりません – GSP