Complex.Equals Método

Definição

Retorna um valor que indica se dois números complexos são iguais.Returns a value that indicates whether two complex numbers are equal.

Sobrecargas

Equals(Complex)

Retorna um valor que indica se a instância atual e um número complexo especificado têm o mesmo valor.Returns a value that indicates whether the current instance and a specified complex number have the same value.

Equals(Object)

Retorna um valor que indica se a instância atual e um objeto especificado têm o mesmo valor.Returns a value that indicates whether the current instance and a specified object have the same value.

Equals(Complex)

Retorna um valor que indica se a instância atual e um número complexo especificado têm o mesmo valor.Returns a value that indicates whether the current instance and a specified complex number have the same value.

public:
 virtual bool Equals(System::Numerics::Complex value);
public bool Equals (System.Numerics.Complex value);
override this.Equals : System.Numerics.Complex -> bool
Public Function Equals (value As Complex) As Boolean

Parâmetros

value
Complex

O número complexo a comparar.The complex number to compare.

Retornos

Boolean

true se este número complexo value tiverem o mesmo valor; caso contrário, false.true if this complex number and value have the same value; otherwise, false.

Implementações

Comentários

O Equals(Complex) método fornece a IEquatable<T> implementação para a Complex estrutura.The Equals(Complex) method provides the IEquatable<T> implementation for the Complex structure. Ele executa um pouco melhor do que o Equals(Object) método porque não precisa converter seu parâmetro em um número complexo.It performs slightly better than Equals(Object) method because it does not have to convert its parameter to a complex number.

Dois números complexos são iguais se suas partes reais são iguais e suas partes imaginários são iguais.Two complex numbers are equal if their real parts are equal and their imaginary parts are equal. O Equals(Complex) método é equivalente à expressão a seguir:The Equals(Complex) method is equivalent to the following expression:

return this.Real.Equals(value) && this.Imaginary.Equals(value);
Return Me.Real.Equals(value.Real) AndAlso Me.Imaginary.Equals(value.Imaginary)

Notas aos Chamadores

Use o Equals(Complex) método com cuidado, pois dois valores que são aparentemente equivalentes podem ser considerados desiguais devido à precisão diferente de seus componentes reais e imaginários.Use the Equals(Complex) method with caution, because two values that are apparently equivalent can be considered unequal due to the differing precision of their real and imaginary components. O exemplo a seguir relata que (3,33333, 0,142857) e (10/3, 1/7) não são iguais.The following example reports that (3.33333, 0.142857) and (10/3, 1/7) are not equal.

[! Code-Csharpsistema. numerices. Complex. Equals # 4] [! Code-VBSystem. numericings. Complex. Equals # 4][!code-csharpSystem.Numerics.Complex.Equals#4] [!code-vbSystem.Numerics.Complex.Equals#4] Uma técnica recomendada é definir uma margem aceitável de diferença entre os dois valores (como 0,01% de um dos componentes de valores reais e imaginários) em vez de comparar os valores de igualdade.One recommended technique is to define an acceptable margin of difference between the two values (such as .01% of one of the values' real and imaginary components) instead of comparing the values for equality. Se o valor absoluto da diferença entre os dois valores for menor que ou igual a essa margem, a diferença provavelmente será devido à diferença em precisão e, portanto, os valores provavelmente serão iguais.If the absolute value of the difference between the two values is less than or equal to that margin, the difference is likely to be due to a difference in precision, and, therefore, the values are likely to be equal. O exemplo a seguir usa essa técnica para comparar os dois valores complexos que o exemplo de código anterior descobriu como desiguais.The following example uses this technique to compare the two complex values that the previous code example found to be unequal. Ele descobre que os dois números complexos são iguais.It finds the two complex numbers to be equal.

[! Code-Csharpsistema. numerices. Complex. Equals # 5] [! Code-VBSystem. numericings. Complex. Equals # 5][!code-csharpSystem.Numerics.Complex.Equals#5] [!code-vbSystem.Numerics.Complex.Equals#5]

Confira também

Aplica-se a

Equals(Object)

Retorna um valor que indica se a instância atual e um objeto especificado têm o mesmo valor.Returns a value that indicates whether the current instance and a specified object have the same value.

public:
 override bool Equals(System::Object ^ obj);
public override bool Equals (object obj);
public override bool Equals (object? obj);
override this.Equals : obj -> bool
Public Overrides Function Equals (obj As Object) As Boolean

Parâmetros

obj
Object

O objeto a ser comparado.The object to compare.

Retornos

Boolean

true se o parâmetro obj for um objeto Complex ou um tipo capaz de conversão implícita para um objeto Complex e seu valor for igual ao objeto Complex atual; caso contrário, false.true if the obj parameter is a Complex object or a type capable of implicit conversion to a Complex object, and its value is equal to the current Complex object; otherwise, false.

Comentários

Dois números complexos são iguais se suas partes reais são iguais e suas partes imaginários são iguais.Two complex numbers are equal if their real parts are equal and their imaginary parts are equal. O Equals(Object) método é equivalente à expressão a seguir:The Equals(Object) method is equivalent to the following expression:

return this.Real.Equals(((Complex) value).Real) &&
       this.Imaginary.Equals(((Complex) value).Imaginary);
Return Me.Real.Equals(CType(value, Complex).Real) AndAlso 
       Me.Imaginary.Equals(CType(value, Complex).Imaginary)

Se o obj parâmetro não for um Complex objeto, mas for um tipo de dados para o qual uma conversão implícita é definida, o Equals(Object) método converterá obj em um Complex objeto cuja parte real é igual ao valor de obj e cuja parte imaginária é igual a zero antes de executar a comparação.If the obj parameter is not a Complex object, but it is a data type for which an implicit conversion is defined, the Equals(Object) method converts obj to a Complex object whose real part is equal to the value of obj and whose imaginary part is equal to zero before it performs the comparison. O exemplo a seguir ilustra isso localizando que um número complexo e um valor de ponto flutuante de precisão dupla são iguais.The following example illustrates this by finding that a complex number and a double-precision floating-point value are equal.

double n1 = 16.33;
System.Numerics.Complex c1 =
       new System.Numerics.Complex(16.33, 0);
Console.WriteLine(c1.Equals(n1));               // Returns true.
Dim n1 As Double = 16.33
Dim c1 As New System.Numerics.Complex(16.33, 0)
Console.WriteLine(c1.Equals(n1))                ' Returns True.

Notas aos Chamadores

Use o Equals(Complex) método com cuidado, pois dois valores que são aparentemente equivalentes podem ser considerados desiguais devido à precisão diferente de seus componentes reais e imaginários.Use the Equals(Complex) method with caution, because two values that are apparently equivalent can be considered unequal due to the differing precision of their real and imaginary components. O problema pode ser acentuado se obj deve ser convertido em um Double antes de executar a comparação.The problem can be accentuated if obj must be converted to a Double before performing the comparison. O exemplo a seguir compara um número complexo cujo componente real parece ser igual a um Single valor com esse Single valor.The following example compares a complex number whose real component appears to be equal to a Single value with that Single value. Como mostra a saída, a comparação para retornos de igualdade False .As the output shows, the comparison for equality returns False.

[! Code-Csharpsistema. numerices. Complex. Equals # 8] [! Code-VBSystem. numericings. Complex. Equals # 8][!code-csharpSystem.Numerics.Complex.Equals#8] [!code-vbSystem.Numerics.Complex.Equals#8] Uma técnica recomendada é definir uma margem aceitável de diferença entre os dois valores (como 0,01% de um dos componentes de valores reais e imaginários) em vez de comparar os valores de igualdade.One recommended technique is to define an acceptable margin of difference between the two values (such as .01% of one of the values' real and imaginary components) instead of comparing the values for equality. Se o valor absoluto da diferença entre os dois valores for menor ou igual à margem, a diferença provavelmente será devido a uma diferença em precisão e, portanto, os valores provavelmente serão iguais.If the absolute value of the difference between the two values is less than or equal to that margin, the difference is likely to be due to a difference in precision and, therefore, the values are likely to be equal. O exemplo a seguir usa essa técnica para comparar os dois valores que o exemplo de código anterior descobriu como desiguais.The following example uses this technique to compare the two values that the previous code example found to be unequal. Agora ele descobre que eles são iguais.It now finds them to be equal.

[! Code-Csharpsistema. numerices. Complex. Equals # 7] [! Code-VBSystem. numericings. Complex. Equals # 7][!code-csharpSystem.Numerics.Complex.Equals#7] [!code-vbSystem.Numerics.Complex.Equals#7]

Aplica-se a