İngilizce dilinde oku

Aracılığıyla paylaş


Decimal.Equals Yöntem

Tanım

İki Decimal örneğinin aynı değeri temsil edip etmediğini gösteren bir değer döndürür.

Aşırı Yüklemeler

Equals(Decimal, Decimal)

belirtilen iki Decimal örneğinin aynı değeri temsil edip etmediğini belirten bir değer döndürür.

Equals(Decimal)

Bu örneğin ve belirtilen Decimal nesnesinin aynı değeri temsil edip etmediğini belirten bir değer döndürür.

Equals(Object)

Bu örneğin ve belirtilen bir Object aynı tür ve değeri temsil edip etmediğini belirten bir değer döndürür.

Equals(Decimal, Decimal)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

belirtilen iki Decimal örneğinin aynı değeri temsil edip etmediğini belirten bir değer döndürür.

C#
public static bool Equals (decimal d1, decimal d2);

Parametreler

d1
Decimal

Karşılaştıracak ilk değer.

d2
Decimal

Karşılaştıracak ikinci değer.

Döndürülenler

d1 ile d2 eşit olup olmadığını true; aksi takdirde, false.

Örnekler

Aşağıdaki kod örneği, statik Equals yöntemini kullanarak birkaç Decimal değerini başvuru Decimal değeriyle karşılaştırır.

C#
// 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
*/

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Equals(Decimal)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Bu örneğin ve belirtilen Decimal nesnesinin aynı değeri temsil edip etmediğini belirten bir değer döndürür.

C#
public bool Equals (decimal value);

Parametreler

value
Decimal

Bu örnekle karşılaştıracak bir nesne.

Döndürülenler

value bu örneğe eşitse true; aksi takdirde, false.

Uygulamalar

Açıklamalar

Bu yöntem System.IEquatable<T> arabirimini uygular ve value parametresini bir nesneye dönüştürmesi gerekmediğinden Equals biraz daha iyi performans gösterir.

value örnek türünden daha az bit (daha dar) varsa, bazı programlama dilleri parametrenin değerini daha fazla bit içeren bir değere dönüştüren örtük bir genişletme dönüştürmesi gerçekleştirir.

Örneğin, örnek türünün Int32 ve parametre türünün Byteolduğunu varsayalım. Microsoft C# derleyicisi parametrenin değerini bir Int32 nesnesi olarak göstermek için yönergeler oluşturur, ardından Int32 örneğini ve parametre gösterimini karşılaştırmak için bir Int32.CompareTo yöntemi oluşturur.

Derleyicinin sayısal türlerde örtük genişletme dönüştürmeleri gerçekleştirip gerçekleştirmediğini belirlemek için programlama dilinizin belgelerine bakın.

Arayanlara Notlar

Derleyici aşırı yükleme çözümlemesi, iki Equals(Object) yöntemi aşırı yüklemesinin davranışında belirgin bir farka neden olabilir. value bağımsız değişkeni ile Decimal arasında örtük bir dönüştürme tanımlanırsa ve bağımsız değişken Objectolarak yazılmazsa, derleyiciler örtük dönüştürme gerçekleştirebilir ve Equals(Decimal) yöntemini çağırabilir. Aksi takdirde, value bağımsız değişkeni Decimal bir değer değilse her zaman false döndüren Equals(Object) yöntemini çağırırlar. Aşağıdaki örnekte iki yöntem aşırı yüklemesi arasındaki davranış farkı gösterilmektedir. hem imzalı hem de imzasız türler de dahil olmak üzere tüm ilkel tam sayı türleri söz konusu olduğunda, derleyici otomatik olarak bir genişletme dönüştürmesi gerçekleştirip Equals(Decimal) yöntemini çağırdığı için ilk karşılaştırma true döndürürken, derleyici Equals(Object) yöntemini çağırdığı için ikinci karşılaştırma false döndürür.

C#
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

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Equals(Object)

Kaynak:
Decimal.cs
Kaynak:
Decimal.cs
Kaynak:
Decimal.cs

Bu örneğin ve belirtilen bir Object aynı tür ve değeri temsil edip etmediğini belirten bir değer döndürür.

C#
public override bool Equals (object value);
C#
public override bool Equals (object? value);

Parametreler

value
Object

Bu örnekle karşılaştıracak nesne.

Döndürülenler

value bir Decimal olup olmadığını ve bu örneğe eşit olup olmadığını true; aksi takdirde, false.

Örnekler

Aşağıdaki kod örneği, Equals yöntemini kullanarak birkaç Decimal ve diğer nesneleri başvuru Decimal değeriyle karşılaştırır.

C#
// 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
*/

Arayanlara Notlar

Derleyici aşırı yükleme çözümlemesi, iki Equals(Object) yöntemi aşırı yüklemesinin davranışında belirgin bir farka neden olabilir. value bağımsız değişkeni ile Decimal arasında örtük bir dönüştürme tanımlanırsa ve bağımsız değişken Objectolarak yazılmazsa, derleyiciler örtük dönüştürme gerçekleştirebilir ve Equals(Decimal) yöntemini çağırabilir. Aksi takdirde, value bağımsız değişkeni Decimal bir değer değilse her zaman false döndüren Equals(Object) yöntemini çağırırlar. Aşağıdaki örnekte iki yöntem aşırı yüklemesi arasındaki davranış farkı gösterilmektedir. hem imzalı hem de imzasız türler de dahil olmak üzere tüm ilkel tam sayı türleri söz konusu olduğunda, derleyici otomatik olarak bir genişletme dönüştürmesi gerçekleştirip Equals(Decimal) yöntemini çağırdığı için ilk karşılaştırma true döndürürken, derleyici Equals(Object) yöntemini çağırdığı için ikinci karşılaştırma false döndürür.

C#
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

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0