| using System;
public enum CardSuite:byte
{Spades, Hearts, Clubs, Diamonds };
public enum CardValue: byte
{Ace = 1, Two = 2, Three = 3, Four = 4, Five = 5,
Six = 6, Seven = 7, Eight = 8, Nine = 9, Ten = 10,
Jack = 11, Queen = 12, King = 13};
public struct Card: IFormattable{
private CardSuite suite;
private CardValue value;
public Card(CardSuite suite, CardValue value){
this.suite = suite;
this.value = value;
}
// Card methods and properties here...
public System.Drawing.Color Color (){
System.Drawing.Color result;
if (suite == CardSuite.Spades || suite == CardSuite.Clubs)
result = System.Drawing.Color.Black;
else
result = System.Drawing.Color.Red;
return result;
}
public override String ToString(){
return this.ToString(null, null);
}
public String ToString(string format, IFormatProvider fp){
if (format == null || format == "G" || format == "L")
return String.Format("Card Suite: {0}, Value: {1}, Color: {2}",
suite, value, Color().ToString());
else if (format == "S")
return String.Format("Card {0}: {1}", suite, (int)value);
else if (format == "V")
return String.Format("Card value: {0}", value);
else throw new FormatException(
String.Format("Invalid format: {0}", format));
}
} |