Decimal.Equals Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Devolve um valor que indica se duas instâncias de Decimal representam o mesmo valor.
Sobrecargas
| Name | Description |
|---|---|
| Equals(Decimal) |
Devolve um valor que indica se esta instância e um objeto especificado Decimal representam o mesmo valor. |
| Equals(Object) |
Devolve um valor que indica se esta instância e um especificado Object representam o mesmo tipo e valor. |
| Equals(Decimal, Decimal) |
Devolve um valor que indica se duas instâncias especificadas de Decimal representam o mesmo valor. |
Equals(Decimal)
Devolve um valor que indica se esta instância e um objeto especificado Decimal representam o mesmo valor.
public:
virtual bool Equals(System::Decimal value);
public bool Equals(decimal value);
override this.Equals : decimal -> bool
Public Function Equals (value As Decimal) As Boolean
Parâmetros
- value
- Decimal
Um objeto para comparar com este caso.
Devoluções
true se value for igual a esta instância; caso contrário, false.
Implementações
Observações
Este método implementa a System.IEquatable<T> interface e tem um desempenho ligeiramente melhor do que Equals porque não é necessário converter o value parâmetro num objeto.
Se value tiver menos bits (é mais estreito) do que o tipo de instância, algumas linguagens de programação realizam uma conversão implícita de alargamento que transforma o valor do parâmetro num valor com mais bits.
Por exemplo, suponha que o tipo de instância é Int32 e o tipo de parâmetro é Byte. O compilador Microsoft C# gera instruções para representar o valor do parâmetro como um objeto Int32, depois gera um método Int32.CompareTo para comparar a instância Int32 e a representação do parâmetro.
Consulte a documentação da sua linguagem de programação para determinar se o compilador realiza conversões de alargamento implícito em tipos numéricos.
Notas para Chamadores
A resolução de sobrecarga do compilador pode explicar uma diferença aparente no comportamento dos dois Equals(Object) sobrecarregamentos de métodos. Se for definida uma conversão implícita entre o argumento value e um Decimal e o argumento não for tipado como um Object, os compiladores podem realizar uma conversão implícita e chamar o Equals(Decimal) método. Caso contrário, chamam o Equals(Object) método, que retorna false sempre se o seu value argumento não for um Decimal valor. O exemplo seguinte ilustra a diferença de comportamento entre as duas sobrecargas de métodos. No caso de todos os tipos de integrais primitivos, incluindo tipos com e sem sinal, a primeira comparação retorna true porque o compilador realiza automaticamente uma conversão de alargamento e chama o Equals(Decimal) método, enquanto a segunda comparação retorna false porque o compilador chama o Equals(Object) método.
using System;
public class Example
{
static decimal value = 112m;
public static void Main()
{
byte byte1= 112;
Console.WriteLine("value = byte1: {0,17}", value.Equals(byte1));
TestObjectForEquality(byte1);
short short1 = 112;
Console.WriteLine("value = short1: {0,17}", value.Equals(short1));
TestObjectForEquality(short1);
int int1 = 112;
Console.WriteLine("value = int1: {0,19}", value.Equals(int1));
TestObjectForEquality(int1);
long long1 = 112;
Console.WriteLine("value = long1: {0,18}", value.Equals(long1));
TestObjectForEquality(long1);
sbyte sbyte1 = 112;
Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1));
TestObjectForEquality(sbyte1);
ushort ushort1 = 112;
Console.WriteLine("value = ushort1: {0,17}", value.Equals(ushort1));
TestObjectForEquality(ushort1);
uint uint1 = 112;
Console.WriteLine("value = uint1: {0,19}", value.Equals(uint1));
TestObjectForEquality(uint1);
ulong ulong1 = 112;
Console.WriteLine("value = ulong1: {0,18}", value.Equals(ulong1));
TestObjectForEquality(ulong1);
float sng1 = 112;
Console.WriteLine("value = sng1: {0,21}", value.Equals(sng1));
TestObjectForEquality(sng1);
double dbl1 = 112;
Console.WriteLine("value = dbl1: {0,21}", value.Equals(dbl1));
TestObjectForEquality(dbl1);
}
private static void TestObjectForEquality(Object obj)
{
Console.WriteLine("{0} ({1}) = {2} ({3}): {4}\n",
value, value.GetType().Name,
obj, obj.GetType().Name,
value.Equals(obj));
}
}
// The example displays the following output:
// value = byte1: True
// 112 (Decimal) = 112 (Byte): False
//
// value = short1: True
// 112 (Decimal) = 112 (Int16): False
//
// value = int1: True
// 112 (Decimal) = 112 (Int32): False
//
// value = long1: True
// 112 (Decimal) = 112 (Int64): False
//
// value = sbyte1: True
// 112 (Decimal) = 112 (SByte): False
//
// value = ushort1: True
// 112 (Decimal) = 112 (UInt16): False
//
// value = uint1: True
// 112 (Decimal) = 112 (UInt32): False
//
// value = ulong1: True
// 112 (Decimal) = 112 (UInt64): False
//
// value = sng1: False
// 112 (Decimal) = 112 (Single): False
//
// value = dbl1: False
// 112 (Decimal) = 112 (Double): False
let value = 112m
let testObjectForEquality (obj: obj) =
printfn $"{value} ({value.GetType().Name}) = {obj} ({obj.GetType().Name}): {value.Equals obj}\n"
let byte1 = 112uy
printfn $"value = byte1: {value.Equals byte1,17}"
testObjectForEquality byte1
let short1 = 112s
printfn $"value = short1: {value.Equals short1,17}"
testObjectForEquality short1
let int1 = 112
printfn $"value = int1: {value.Equals int1,19}"
testObjectForEquality int1
let long1 = 112L
printfn $"value = long1: {value.Equals long1,18}"
testObjectForEquality long1
let sbyte1 = 112y
printfn $"value = sbyte1: {value.Equals sbyte1,17}"
testObjectForEquality sbyte1
let ushort1 = 112us
printfn $"value = ushort1: {value.Equals ushort1,17}"
testObjectForEquality ushort1
let uint1 = 112u
printfn $"value = uint1: {value.Equals uint1,19}"
testObjectForEquality uint1
let ulong1 = 112uL
printfn $"value = ulong1: {value.Equals ulong1,18}"
testObjectForEquality ulong1
let sng1 = 112f
printfn $"value = sng1: {value.Equals sng1,21}"
testObjectForEquality sng1
let dbl1 = 112.
printfn $"value = dbl1: {value.Equals dbl1,21}"
testObjectForEquality dbl1
// The example displays the following output:
// value = byte1: True
// 112 (Decimal) = 112 (Byte): False
//
// value = short1: True
// 112 (Decimal) = 112 (Int16): False
//
// value = int1: True
// 112 (Decimal) = 112 (Int32): False
//
// value = long1: True
// 112 (Decimal) = 112 (Int64): False
//
// value = sbyte1: True
// 112 (Decimal) = 112 (SByte): False
//
// value = ushort1: True
// 112 (Decimal) = 112 (UInt16): False
//
// value = uint1: True
// 112 (Decimal) = 112 (UInt32): False
//
// value = ulong1: True
// 112 (Decimal) = 112 (UInt64): False
//
// value = sng1: False
// 112 (Decimal) = 112 (Single): False
//
// value = dbl1: False
// 112 (Decimal) = 112 (Double): False
Module Example
Dim value As Decimal = 112d
Public Sub Main()
Dim byte1 As Byte = 112
Console.WriteLine("value = byte1: {0,17}", value.Equals(byte1))
TestObjectForEquality(byte1)
Dim short1 As Short = 112
Console.WriteLine("value = short1: {0,17}", value.Equals(short1))
TestObjectForEquality(short1)
Dim int1 As Integer = 112
Console.WriteLine("value = int1: {0,19}", value.Equals(int1))
TestObjectForEquality(int1)
Dim long1 As Long = 112
Console.WriteLine("value = long1: {0,18}", value.Equals(long1))
TestObjectForEquality(long1)
Dim sbyte1 As SByte = 112
Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1))
TestObjectForEquality(sbyte1)
Dim ushort1 As UShort = 112
Console.WriteLine("value = ushort1: {0,17}", value.Equals(ushort1))
TestObjectForEquality(ushort1)
Dim uint1 As UInteger = 112
Console.WriteLine("value = uint1: {0,19}", value.Equals(uint1))
TestObjectForEquality(uint1)
Dim ulong1 As ULong = 112
Console.WriteLine("value = ulong1: {0,18}", value.Equals(ulong1))
TestObjectForEquality(ulong1)
Dim sng1 As Single = 112
Console.WriteLine("value = sng1: {0,21}", value.Equals(sng1))
TestObjectForEquality(sng1)
Dim dbl1 As Double = 112
Console.WriteLine("value = dbl1: {0,21}", value.Equals(dbl1))
TestObjectForEquality(dbl1)
End Sub
Private Sub TestObjectForEquality(obj As Object)
Console.WriteLine("{0} ({1}) = {2} ({3}): {4}",
value, value.GetType().Name,
obj, obj.GetType().Name,
value.Equals(obj))
Console.WriteLine()
End Sub
End Module
' The example displays the following output:
' value = byte1: True
' 112 (Decimal) = 112 (Byte): False
'
' value = short1: True
' 112 (Decimal) = 112 (Int16): False
'
' value = int1: True
' 112 (Decimal) = 112 (Int32): False
'
' value = long1: True
' 112 (Decimal) = 112 (Int64): False
'
' value = sbyte1: True
' 112 (Decimal) = 112 (SByte): False
'
' value = ushort1: True
' 112 (Decimal) = 112 (UInt16): False
'
' value = uint1: True
' 112 (Decimal) = 112 (UInt32): False
'
' value = ulong1: True
' 112 (Decimal) = 112 (UInt64): False
'
' value = sng1: False
' 112 (Decimal) = 112 (Single): False
'
' value = dbl1: False
' 112 (Decimal) = 112 (Double): False
Ver também
Aplica-se a
Equals(Object)
Devolve um valor que indica se esta instância e um especificado Object representam o mesmo tipo e valor.
public:
override bool Equals(System::Object ^ value);
public override bool Equals(object value);
override this.Equals : obj -> bool
Public Overrides Function Equals (value As Object) As Boolean
Parâmetros
- value
- Object
O objetivo a comparar com este caso.
Devoluções
true se value for a Decimal e igual a esta instância; caso contrário, false.
Exemplos
O seguinte exemplo de código compara vários Decimal e outros objetos a um valor de referência Decimal usando o Equals método.
// Example of the decimal.CompareTo and decimal.Equals instance
// methods.
using System;
class DecCompToEqualsObjDemo
{
// Get the exception type name; remove the namespace prefix.
public static string GetExceptionType( Exception ex )
{
string exceptionType = ex.GetType( ).ToString( );
return exceptionType.Substring(
exceptionType.LastIndexOf( '.' ) + 1 );
}
// Compare the decimal to the object parameters,
// and display the object parameters with the results.
public static void CompDecimalToObject( decimal Left,
object Right, string RightText )
{
Console.WriteLine( "{0,-46}{1}", "object: "+RightText,
Right );
Console.WriteLine( "{0,-46}{1}", "Left.Equals( object )",
Left.Equals( Right ) );
Console.Write( "{0,-46}", "Left.CompareTo( object )" );
try
{
// Catch the exception if CompareTo( ) throws one.
Console.WriteLine( "{0}\n", Left.CompareTo( Right ) );
}
catch( Exception ex )
{
Console.WriteLine( "{0}\n", GetExceptionType( ex ) );
}
}
public static void Main( )
{
Console.WriteLine(
"This example of the decimal.Equals( object ) and \n" +
"decimal.CompareTo( object ) methods generates the \n" +
"following output. It creates several different " +
"decimal \nvalues and compares them with the following " +
"reference value.\n" );
// Create a reference decimal value.
decimal Left = new decimal( 987.654 );
Console.WriteLine( "{0,-46}{1}\n",
"Left: decimal( 987.654 )", Left );
// Create objects to compare with the reference.
CompDecimalToObject( Left, new decimal( 9.8765400E+2 ),
"decimal( 9.8765400E+2 )" );
CompDecimalToObject( Left, 987.6541M, "987.6541D" );
CompDecimalToObject( Left, 987.6539M, "987.6539D" );
CompDecimalToObject( Left,
new decimal( 987654000, 0, 0, false, 6 ),
"decimal( 987654000, 0, 0, false, 6 )" );
CompDecimalToObject( Left, 9.8765400E+2,
"Double 9.8765400E+2" );
CompDecimalToObject( Left, "987.654", "String \"987.654\"" );
}
}
/*
This example of the decimal.Equals( object ) and
decimal.CompareTo( object ) methods generates the
following output. It creates several different decimal
values and compares them with the following reference value.
Left: decimal( 987.654 ) 987.654
object: decimal( 9.8765400E+2 ) 987.654
Left.Equals( object ) True
Left.CompareTo( object ) 0
object: 987.6541D 987.6541
Left.Equals( object ) False
Left.CompareTo( object ) -1
object: 987.6539D 987.6539
Left.Equals( object ) False
Left.CompareTo( object ) 1
object: decimal( 987654000, 0, 0, false, 6 ) 987.654000
Left.Equals( object ) True
Left.CompareTo( object ) 0
object: Double 9.8765400E+2 987.654
Left.Equals( object ) False
Left.CompareTo( object ) ArgumentException
object: String "987.654" 987.654
Left.Equals( object ) False
Left.CompareTo( object ) ArgumentException
*/
// Example of the decimal.CompareTo and decimal.Equals instance
// methods.
open System
// Get the exception type name remove the namespace prefix.
let getExceptionType (ex: exn) =
let exceptionType = ex.GetType() |> string
exceptionType.Substring(exceptionType.LastIndexOf '.' + 1)
// Compare the decimal to the object parameters,
// and display the object parameters with the results.
let compDecimalToObject (left: decimal) (right: obj) (rightText: string) =
printfn $"object: %-38s{rightText}{right}"
printfn $"""%-46s{"left.Equals(object)"}{left.Equals right}"""
printf $"""%-46s{"left.CompareTo(object)"}"""
try
// Catch the exception if CompareTo( ) throws one.
printfn $"{left.CompareTo right}\n"
with ex ->
printfn $"{getExceptionType ex}\n"
Console.WriteLine(
"This example of the decimal.Equals( object ) and \n" +
"decimal.CompareTo( object ) methods generates the \n" +
"following output. It creates several different " +
"decimal \nvalues and compares them with the following " +
"reference value.\n" )
// Create a reference decimal value.
let left = decimal 987.654
printfn $"""{"Left: decimal(987.654)",-46}{left}\n"""
// Create objects to compare with the reference.
compDecimalToObject left (decimal 9.8765400E+2 ) "decimal(9.8765400E+2)"
compDecimalToObject left 987.6541M "987.6541D"
compDecimalToObject left 987.6539M "987.6539D"
compDecimalToObject left (Decimal(987654000, 0, 0, false, 6uy)) "Decimal(987654000, 0, 0, false, 6)"
compDecimalToObject left 9.8765400E+2 "Double 9.8765400E+2"
compDecimalToObject left "987.654" "String \"987.654\""
// This example of the Decimal.Equals(object) and
// Decimal.CompareTo(object) methods generates the
// following output. It creates several different decimal
// values and compares them with the following reference value.
// Left: decimal(987.654) 987.654
//
// object: decimal(9.8765400E+2) 987.654
// left.Equals(object) True
// left.CompareTo(object) 0
//
// object: 987.6541D 987.6541
// left.Equals(object) False
// left.CompareTo(object) -1
//
// object: 987.6539D 987.6539
// left.Equals(object) False
// left.CompareTo(object) 1
//
// object: Decimal(987654000, 0, 0, false, 6) 987.654000
// left.Equals(object) True
// left.CompareTo(object) 0
//
// object: Double 9.8765400E+2 987.654
// left.Equals(object) False
// left.CompareTo(object) ArgumentException
//
// object: String "987.654" 987.654
// left.Equals(object) False
// left.CompareTo(object) ArgumentException
' Example of the Decimal.CompareTo and Decimal.Equals instance methods.
Module DecCompToEqualsObjDemo
' Get the exception type name; remove the namespace prefix.
Function GetExceptionType( ex As Exception ) As String
Dim exceptionType As String = ex.GetType( ).ToString( )
Return exceptionType.Substring( _
exceptionType.LastIndexOf( "."c ) + 1 )
End Function
' Compare the Decimal to the Object parameters,
' and display the Object parameters with the results.
Sub CompDecimalToObject( Left as Decimal, Right as Object, _
RightText as String )
Console.WriteLine( "{0,-46}{1}", "Object: " & RightText, _
Right )
Console.WriteLine( "{0,-46}{1}", "Left.Equals( Object )", _
Left.Equals( Right ) )
Console.Write( "{0,-46}", "Left.CompareTo( Object )" )
' Catch the exception if CompareTo( ) throws one.
Try
Console.WriteLine( "{0}" & vbCrLf, _
Left.CompareTo( Right ) )
Catch ex As Exception
Console.WriteLine( "{0}" & vbCrLf, _
GetExceptionType( ex ) )
End Try
End Sub
Sub Main( )
Console.WriteLine( _
"This example of the Decimal.Equals( Object ) " & _
"and " & vbCrLf & "Decimal.CompareTo( Object ) " & _
"methods generates the " & vbCrLf & _
"following output. It creates several different " & _
"Decimal " & vbCrLf & "values and compares them " & _
"with the following reference value." & vbCrLf )
' Create a reference Decimal value.
Dim Left as New Decimal( 987.654 )
Console.WriteLine( "{0,-46}{1}" & vbCrLf, _
"Left: Decimal( 987.654 )", Left )
' Create objects to compare with the reference.
CompDecimalToObject( Left, New Decimal( 9.8765400E+2 ), _
"Decimal( 9.8765400E+2 )" )
CompDecimalToObject( Left, 987.6541D, "987.6541D" )
CompDecimalToObject( Left, 987.6539D, "987.6539D" )
CompDecimalToObject( Left, _
New Decimal( 987654000, 0, 0, false, 6 ), _
"Decimal( 987654000, 0, 0, false, 6 )" )
CompDecimalToObject( Left, 9.8765400E+2, _
"Double 9.8765400E+2" )
CompDecimalToObject( Left, "987.654", _
"String ""987.654""" )
End Sub
End Module
' This example of the Decimal.Equals( Object ) and
' Decimal.CompareTo( Object ) methods generates the
' following output. It creates several different Decimal
' values and compares them with the following reference value.
'
' Left: Decimal( 987.654 ) 987.654
'
' Object: Decimal( 9.8765400E+2 ) 987.654
' Left.Equals( Object ) True
' Left.CompareTo( Object ) 0
'
' Object: 987.6541D 987.6541
' Left.Equals( Object ) False
' Left.CompareTo( Object ) -1
'
' Object: 987.6539D 987.6539
' Left.Equals( Object ) False
' Left.CompareTo( Object ) 1
'
' Object: Decimal( 987654000, 0, 0, false, 6 ) 987.654000
' Left.Equals( Object ) True
' Left.CompareTo( Object ) 0
'
' Object: Double 9.8765400E+2 987.654
' Left.Equals( Object ) False
' Left.CompareTo( Object ) ArgumentException
'
' Object: String "987.654" 987.654
' Left.Equals( Object ) False
' Left.CompareTo( Object ) ArgumentException
Notas para Chamadores
A resolução de sobrecarga do compilador pode explicar uma diferença aparente no comportamento dos dois Equals(Object) sobrecarregamentos de métodos. Se for definida uma conversão implícita entre o argumento value e um Decimal e o argumento não for tipado como um Object, os compiladores podem realizar uma conversão implícita e chamar o Equals(Decimal) método. Caso contrário, chamam o Equals(Object) método, que retorna false sempre se o seu value argumento não for um Decimal valor. O exemplo seguinte ilustra a diferença de comportamento entre as duas sobrecargas de métodos. No caso de todos os tipos de integrais primitivos, incluindo tipos com e sem sinal, a primeira comparação retorna true porque o compilador realiza automaticamente uma conversão de alargamento e chama o Equals(Decimal) método, enquanto a segunda comparação retorna false porque o compilador chama o Equals(Object) método.
using System;
public class Example
{
static decimal value = 112m;
public static void Main()
{
byte byte1= 112;
Console.WriteLine("value = byte1: {0,17}", value.Equals(byte1));
TestObjectForEquality(byte1);
short short1 = 112;
Console.WriteLine("value = short1: {0,17}", value.Equals(short1));
TestObjectForEquality(short1);
int int1 = 112;
Console.WriteLine("value = int1: {0,19}", value.Equals(int1));
TestObjectForEquality(int1);
long long1 = 112;
Console.WriteLine("value = long1: {0,18}", value.Equals(long1));
TestObjectForEquality(long1);
sbyte sbyte1 = 112;
Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1));
TestObjectForEquality(sbyte1);
ushort ushort1 = 112;
Console.WriteLine("value = ushort1: {0,17}", value.Equals(ushort1));
TestObjectForEquality(ushort1);
uint uint1 = 112;
Console.WriteLine("value = uint1: {0,19}", value.Equals(uint1));
TestObjectForEquality(uint1);
ulong ulong1 = 112;
Console.WriteLine("value = ulong1: {0,18}", value.Equals(ulong1));
TestObjectForEquality(ulong1);
float sng1 = 112;
Console.WriteLine("value = sng1: {0,21}", value.Equals(sng1));
TestObjectForEquality(sng1);
double dbl1 = 112;
Console.WriteLine("value = dbl1: {0,21}", value.Equals(dbl1));
TestObjectForEquality(dbl1);
}
private static void TestObjectForEquality(Object obj)
{
Console.WriteLine("{0} ({1}) = {2} ({3}): {4}\n",
value, value.GetType().Name,
obj, obj.GetType().Name,
value.Equals(obj));
}
}
// The example displays the following output:
// value = byte1: True
// 112 (Decimal) = 112 (Byte): False
//
// value = short1: True
// 112 (Decimal) = 112 (Int16): False
//
// value = int1: True
// 112 (Decimal) = 112 (Int32): False
//
// value = long1: True
// 112 (Decimal) = 112 (Int64): False
//
// value = sbyte1: True
// 112 (Decimal) = 112 (SByte): False
//
// value = ushort1: True
// 112 (Decimal) = 112 (UInt16): False
//
// value = uint1: True
// 112 (Decimal) = 112 (UInt32): False
//
// value = ulong1: True
// 112 (Decimal) = 112 (UInt64): False
//
// value = sng1: False
// 112 (Decimal) = 112 (Single): False
//
// value = dbl1: False
// 112 (Decimal) = 112 (Double): False
let value = 112m
let testObjectForEquality (obj: obj) =
printfn $"{value} ({value.GetType().Name}) = {obj} ({obj.GetType().Name}): {value.Equals obj}\n"
let byte1 = 112uy
printfn $"value = byte1: {value.Equals byte1,17}"
testObjectForEquality byte1
let short1 = 112s
printfn $"value = short1: {value.Equals short1,17}"
testObjectForEquality short1
let int1 = 112
printfn $"value = int1: {value.Equals int1,19}"
testObjectForEquality int1
let long1 = 112L
printfn $"value = long1: {value.Equals long1,18}"
testObjectForEquality long1
let sbyte1 = 112y
printfn $"value = sbyte1: {value.Equals sbyte1,17}"
testObjectForEquality sbyte1
let ushort1 = 112us
printfn $"value = ushort1: {value.Equals ushort1,17}"
testObjectForEquality ushort1
let uint1 = 112u
printfn $"value = uint1: {value.Equals uint1,19}"
testObjectForEquality uint1
let ulong1 = 112uL
printfn $"value = ulong1: {value.Equals ulong1,18}"
testObjectForEquality ulong1
let sng1 = 112f
printfn $"value = sng1: {value.Equals sng1,21}"
testObjectForEquality sng1
let dbl1 = 112.
printfn $"value = dbl1: {value.Equals dbl1,21}"
testObjectForEquality dbl1
// The example displays the following output:
// value = byte1: True
// 112 (Decimal) = 112 (Byte): False
//
// value = short1: True
// 112 (Decimal) = 112 (Int16): False
//
// value = int1: True
// 112 (Decimal) = 112 (Int32): False
//
// value = long1: True
// 112 (Decimal) = 112 (Int64): False
//
// value = sbyte1: True
// 112 (Decimal) = 112 (SByte): False
//
// value = ushort1: True
// 112 (Decimal) = 112 (UInt16): False
//
// value = uint1: True
// 112 (Decimal) = 112 (UInt32): False
//
// value = ulong1: True
// 112 (Decimal) = 112 (UInt64): False
//
// value = sng1: False
// 112 (Decimal) = 112 (Single): False
//
// value = dbl1: False
// 112 (Decimal) = 112 (Double): False
Module Example
Dim value As Decimal = 112d
Public Sub Main()
Dim byte1 As Byte = 112
Console.WriteLine("value = byte1: {0,17}", value.Equals(byte1))
TestObjectForEquality(byte1)
Dim short1 As Short = 112
Console.WriteLine("value = short1: {0,17}", value.Equals(short1))
TestObjectForEquality(short1)
Dim int1 As Integer = 112
Console.WriteLine("value = int1: {0,19}", value.Equals(int1))
TestObjectForEquality(int1)
Dim long1 As Long = 112
Console.WriteLine("value = long1: {0,18}", value.Equals(long1))
TestObjectForEquality(long1)
Dim sbyte1 As SByte = 112
Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1))
TestObjectForEquality(sbyte1)
Dim ushort1 As UShort = 112
Console.WriteLine("value = ushort1: {0,17}", value.Equals(ushort1))
TestObjectForEquality(ushort1)
Dim uint1 As UInteger = 112
Console.WriteLine("value = uint1: {0,19}", value.Equals(uint1))
TestObjectForEquality(uint1)
Dim ulong1 As ULong = 112
Console.WriteLine("value = ulong1: {0,18}", value.Equals(ulong1))
TestObjectForEquality(ulong1)
Dim sng1 As Single = 112
Console.WriteLine("value = sng1: {0,21}", value.Equals(sng1))
TestObjectForEquality(sng1)
Dim dbl1 As Double = 112
Console.WriteLine("value = dbl1: {0,21}", value.Equals(dbl1))
TestObjectForEquality(dbl1)
End Sub
Private Sub TestObjectForEquality(obj As Object)
Console.WriteLine("{0} ({1}) = {2} ({3}): {4}",
value, value.GetType().Name,
obj, obj.GetType().Name,
value.Equals(obj))
Console.WriteLine()
End Sub
End Module
' The example displays the following output:
' value = byte1: True
' 112 (Decimal) = 112 (Byte): False
'
' value = short1: True
' 112 (Decimal) = 112 (Int16): False
'
' value = int1: True
' 112 (Decimal) = 112 (Int32): False
'
' value = long1: True
' 112 (Decimal) = 112 (Int64): False
'
' value = sbyte1: True
' 112 (Decimal) = 112 (SByte): False
'
' value = ushort1: True
' 112 (Decimal) = 112 (UInt16): False
'
' value = uint1: True
' 112 (Decimal) = 112 (UInt32): False
'
' value = ulong1: True
' 112 (Decimal) = 112 (UInt64): False
'
' value = sng1: False
' 112 (Decimal) = 112 (Single): False
'
' value = dbl1: False
' 112 (Decimal) = 112 (Double): False
Ver também
Aplica-se a
Equals(Decimal, Decimal)
Devolve um valor que indica se duas instâncias especificadas de Decimal representam o mesmo valor.
public:
static bool Equals(System::Decimal d1, System::Decimal d2);
public static bool Equals(decimal d1, decimal d2);
static member Equals : decimal * decimal -> bool
Public Shared Function Equals (d1 As Decimal, d2 As Decimal) As Boolean
Parâmetros
- d1
- Decimal
O primeiro valor a comparar.
- d2
- Decimal
O segundo valor a comparar.
Devoluções
true se d1 e d2 forem iguais; caso contrário, false.
Exemplos
O seguinte exemplo de código compara vários Decimal valores a um valor de referência Decimal usando o método estático Equals .
// Example of the decimal.Compare and static decimal.Equals methods.
using System;
class DecCompareEqualsDemo
{
const string dataFmt = "{0,-45}{1}";
// Compare decimal parameters, and display them with the results.
public static void CompareDecimals( decimal Left, decimal Right,
string RightText )
{
Console.WriteLine( );
Console.WriteLine( dataFmt, "Right: "+RightText, Right );
Console.WriteLine( dataFmt, "decimal.Equals( Left, Right )",
Decimal.Equals( Left, Right ) );
Console.WriteLine( dataFmt, "decimal.Compare( Left, Right )",
Decimal.Compare( Left, Right ) );
}
public static void Main( )
{
Console.WriteLine( "This example of the " +
"decimal.Equals( decimal, decimal ) and \n" +
"decimal.Compare( decimal, decimal ) methods " +
"generates the \nfollowing output. It creates several " +
"different decimal \nvalues and compares them with " +
"the following reference value.\n" );
// Create a reference decimal value.
decimal Left = new decimal( 123.456 );
Console.WriteLine( dataFmt, "Left: decimal( 123.456 )",
Left );
// Create decimal values to compare with the reference.
CompareDecimals( Left, new decimal( 1.2345600E+2 ),
"decimal( 1.2345600E+2 )" );
CompareDecimals( Left, 123.4561M, "123.4561M" );
CompareDecimals( Left, 123.4559M, "123.4559M" );
CompareDecimals( Left, 123.456000M, "123.456000M" );
CompareDecimals( Left,
new decimal( 123456000, 0, 0, false, 6 ),
"decimal( 123456000, 0, 0, false, 6 )" );
}
}
/*
This example of the decimal.Equals( decimal, decimal ) and
decimal.Compare( decimal, decimal ) methods generates the
following output. It creates several different decimal
values and compares them with the following reference value.
Left: decimal( 123.456 ) 123.456
Right: decimal( 1.2345600E+2 ) 123.456
decimal.Equals( Left, Right ) True
decimal.Compare( Left, Right ) 0
Right: 123.4561M 123.4561
decimal.Equals( Left, Right ) False
decimal.Compare( Left, Right ) -1
Right: 123.4559M 123.4559
decimal.Equals( Left, Right ) False
decimal.Compare( Left, Right ) 1
Right: 123.456000M 123.456000
decimal.Equals( Left, Right ) True
decimal.Compare( Left, Right ) 0
Right: decimal( 123456000, 0, 0, false, 6 ) 123.456000
decimal.Equals( Left, Right ) True
decimal.Compare( Left, Right ) 0
*/
// Example of the decimal.Compare and static decimal.Equals methods.
open System
let print message obj = printfn $"%-45s{message}{obj}"
// Compare decimal parameters, and display them with the results.
let compareDecimals (left: decimal) (right: decimal) (rightText: string) =
printfn ""
print $"right: {rightText}" right
print "decimal.Equals(left, right) " (Decimal.Equals(left, right))
print "decimal.Compare(left, right) " (Decimal.Compare(left, right))
Console.WriteLine( "This example of the " +
"decimal.Equals(decimal, decimal) and \n" +
"decimal.Compare(decimal, decimal) methods " +
"generates the \nfollowing output. It creates several " +
"different decimal \nvalues and compares them with " +
"the following reference value.\n" )
// Create a reference decimal value.
let left = decimal 123.456
print "left: decimal( 123.456 )" left
// Create decimal values to compare with the reference.
compareDecimals left (decimal 1.2345600E+2 ) "decimal(1.2345600E+2)"
compareDecimals left 123.4561M "123.4561M"
compareDecimals left 123.4559M "123.4559M"
compareDecimals left 123.456000M "123.456000M"
compareDecimals left (Decimal(123456000, 0, 0, false, 6uy)) "Decimal(123456000, 0, 0, false, 6)"
// This example of the decimal.Equals(decimal, decimal) and
// decimal.Compare(decimal, decimal) methods generates the
// following output. It creates several different decimal
// values and compares them with the following reference value.
// left: decimal(123.456) 123.456
// right: decimal(1.2345600E+2) 123.456
// decimal.Equals(left, right) True
// decimal.Compare(left, right) 0
// right: 123.4561M 123.4561
// decimal.Equals(left, right) False
// decimal.Compare(left, right) -1
// right: 123.4559M 123.4559
// decimal.Equals(left, right) False
// decimal.Compare(left, right) 1
// right: 123.456000M 123.456000
// decimal.Equals(left, right) True
// decimal.Compare(left, right) 0
// right: decimal(123456000, 0, 0, false, 6) 123.456000
// decimal.Equals(left, right) True
// decimal.Compare(left, right) 0
' Example of the Decimal.Compare and static Decimal.Equals methods.
Module DecCompareEqualsDemo
Const dataFmt As String = "{0,-45}{1}"
' Compare Decimal parameters, and display them with the results.
Sub CompareDecimals( Left as Decimal, Right as Decimal, _
RightText as String )
Console.WriteLine( )
Console.WriteLine( dataFmt, "Right: " & RightText, Right )
Console.WriteLine( dataFmt, "Decimal.Equals( Left, Right )", _
Decimal.Equals( Left, Right ) )
Console.WriteLine( dataFmt, _
"Decimal.Compare( Left, Right )", _
Decimal.Compare( Left, Right ) )
End Sub
Sub Main( )
Console.WriteLine( _
"This example of the Decimal.Equals( Decimal, " & _
"Decimal ) and " & vbCrLf & "Decimal.Compare( " & _
"Decimal, Decimal ) methods generates the " & vbCrLf & _
"following output. It creates several different " & _
"Decimal " & vbCrLf & "values and compares them " & _
"with the following reference value." & vbCrLf )
' Create a reference Decimal value.
Dim Left as New Decimal( 123.456 )
Console.WriteLine( dataFmt, "Left: Decimal( 123.456 )", Left )
' Create Decimal values to compare with the reference.
CompareDecimals( Left, New Decimal( 1.2345600E+2 ), _
"Decimal( 1.2345600E+2 )" )
CompareDecimals( Left, 123.4561D, "123.4561D" )
CompareDecimals( Left, 123.4559D, "123.4559D" )
CompareDecimals( Left, 123.456000D, "123.456000D" )
CompareDecimals( Left, _
New Decimal( 123456000, 0, 0, false, 6 ), _
"Decimal( 123456000, 0, 0, false, 6 )" )
End Sub
End Module
' This example of the Decimal.Equals( Decimal, Decimal ) and
' Decimal.Compare( Decimal, Decimal ) methods generates the
' following output. It creates several different Decimal
' values and compares them with the following reference value.
'
' Left: Decimal( 123.456 ) 123.456
'
' Right: Decimal( 1.2345600E+2 ) 123.456
' Decimal.Equals( Left, Right ) True
' Decimal.Compare( Left, Right ) 0
'
' Right: 123.4561D 123.4561
' Decimal.Equals( Left, Right ) False
' Decimal.Compare( Left, Right ) -1
'
' Right: 123.4559D 123.4559
' Decimal.Equals( Left, Right ) False
' Decimal.Compare( Left, Right ) 1
'
' Right: 123.456000D 123.456
' Decimal.Equals( Left, Right ) True
' Decimal.Compare( Left, Right ) 0
'
' Right: Decimal( 123456000, 0, 0, false, 6 ) 123.456000
' Decimal.Equals( Left, Right ) True
' Decimal.Compare( Left, Right ) 0