2015-10-17 64 views
-2

我創建了一個名爲Card的類和一個名爲CardDeck的類。 在類CardDeck中,我聲明瞭一個名爲deck(類型爲Card)的數組,其元素是Card類的對象。 它的卡片對象有自己的編號和形狀。C#如何比較作爲數組元素的對象屬性?

我如何才能比較甲板[0]與甲板[1],看看這些obects是否有相同數量或相同的形狀?

類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; 
    } 
} 

回答

1

你會希望在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

+0

謝謝!但之後,我將如何比較讓我們說對象Deck [0]的屬性號碼與Deck [1]的屬性號碼,以查看它們是否具有相同的號碼?@Matt Thomas – Peridis

+0

@Peridis您能夠使用Deck [0] .Number == Deck [1] .Number? –

+0

我想這會做,謝謝! @Matt Thomas – Peridis