簡體   English   中英

C# 如何比較作為數組元素的對象的屬性?

[英]C# How can I compare objects' attributes that are elements of an array?

我創建了一個名為 Card 的類和一個名為 CardDeck 的類。 在 CardDeck 類中,我聲明了一個名為deck(類型為 Card)的數組,其元素是類 Card 的對象。 它的 Card 對象有自己的編號和形狀。

例如,我如何比較deck[0] 和deck[1] 以查看這些對象是否具有相同的數字或相同的形狀?

類 CardDeck

using System;
public Class CardDeck
{ 
   private int number_of_elements = 30;
   public CardDeck()//constructor
   {
      int[] arrayNumber = {0,1,2,3,4,5,6,7,8,9};
      string[] arrayShape = { "oval" , "diamond", "square" };
      deck = new Card[number_of elements];
      InitialiseDeck(arrauNumber, arrayShape);
   }
   private void InitialiseDeck(int[] num, string[] sha)
   {
      int count = 0;
      for( int i = 0; i < 10; i++)
      {
         for(int j = 0; j < 3; j++)
         {
            deck[count] = new Card(num[i],sha[j]);
            count++;
         }
      }
    }
}

班卡

using System;
public class Card
{
   private int number;
   private string shape;

   public Card( int cardNumber, string cardShape)
   {
      number = cardNumber;
      shape = cardShape;
   }
}

您需要在Card類上創建公共屬性,以公開numbershape變量。 然后在Card類之外的代碼中引用這些屬性。

例如:

public class Card
{
   private int number;
   private string shape;

   public Card( int cardNumber, string cardShape)
   {
      number = cardNumber;
      shape = cardShape;
   }
   public int Number { get { return this.number; } }
   public string Shape { get { return this.shape; } }
}

用法:

var card1 = new Card(13, "diamond");
var card2 = new Card(13, "heart");
if (card1.Number == card2.Number && card2.Shape == card2.Shape)
{
    // The cards are the same
}

如果您只想檢查卡片是否相等,那么您只需聲明==運算符將對Card類執行的操作: https : //msdn.microsoft.com/en-us/library/8edha89s.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM