📄 4.7.txt
字号:
Listing 4.7 Card Type Containing a Card Value and Suit Defined with
Enumerated Types
public enum CardSuits
{
Hearts = 1, Clubs, Diamonds, Spades
}
public enum CardValues
{
Two=2, Three, Four, Five, Six, Seven, Eight, Nine, Ten,
Jack = 11, Queen, King, Ace
}
public class Card : IComparer
{
int number;
CardSuits suit;
public Card() : this( CardValues.Two, CardSuits.Hearts )
{
}
public Card( CardValues cvalue, CardSuits csuit )
{
// ensure values fall within range
if( (int) cvalue > 1 && (int)cvalue < 15 )
number = (int) cvalue;
else
number = 2;
// ensure suits fall within range
if( (int) csuit > 0 && (int) csuit < 5 )
suit = csuit;
else
suit = CardSuits.Hearts;
}
public override string ToString()
{
string ret;
// get face card name if card is greater than 10
if( number > 10 )
{
ret = Enum.GetName( typeof(CardValues), number );
}
else
{
ret = number.ToString();
}
ret += “ of “;
// get suit name from CardSuits enum
ret += Enum.GetName( typeof(CardSuits), suit );
return ret;
}
public CardSuits CardSuit
{
get
{
return suit;
}
set
{
// make sure suit falls within range
if( (int) value > 0 && (int) value < 5 )
suit = value;
}
}
public CardValues CardValue
{
get
{
return (CardValues) number;
}
set
{
// make sure value is within range
if( (int) value > 1 && (int) value < 15 )
{
number = (int) value;
}
}
}
public int Compare(object x, object y)
{
Card a = (Card) x;
Card b = (Card) y;
// check card suits
if( (int) a.CardSuit < (int) b.CardSuit )
return -1;
if( (int) a.CardSuit > (int) b.CardSuit )
return 1;
// check card values since suits are the same
if( (int) a.CardValue < (int) b.CardValue )
return -1;
if( (int) a.CardValue > (int) b.CardValue )
return 1;
return 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -