我正在创建一个二十一点游戏,到目前为止,我已经做了一个卡类。卡类的工作,但是当我去测试我的卡类,当它测试3异常应该赶上,因为“X”不在值数组,但由于某种原因,它不捕获和显示X而不是错误消息“输入无效”。我想要发生的是我的值集访问者应搜索字符串[]值数组,然后确定值参数是否有效,如果它不是然后抛出一个新的异常。我不知道如何解决这个问题。此外,我不能使用枚举值我需要使用values数组。尝试抓住不输入异常与输入
任何帮助,将不胜感激
这里是我有我的卡类
class Card
{
public enum SUIT { HEARTS, SPADES, DIAMONDS, CLUBS };
private SUIT _suit;
private String _value;
public Card(SUIT suit, String value)
{
_suit = suit;
_value = value;
}
public SUIT Suit
{
get
{
//Return member variable value
return _suit;
}
set
{
_suit = value;
}
}
private String[] values = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
public String Value
{
get { return _value; }
set
{
if (!values.Contains(value))
{
throw new ArgumentException("Invalid Input");
}
_value = value;
}
}
}
这里是我的代码与
try
{
Card testCard1 = new Card(Card.SUIT.SPADES, "Q");
Console.WriteLine(testCard1.Suit + " " + testCard1.Value);
Card testCard2 = new Card(Card.SUIT.DIAMONDS, "10");
Console.WriteLine(testCard2.Suit + " " + testCard2.Value);
Card testCard3 = new Card(Card.SUIT.DIAMONDS, "X");
Console.WriteLine(testCard3.Suit + " " + testCard3.Value);
}
catch (ArgumentException e)
{
Console.WriteLine(e.Message);
}
Console.ReadLine();
[属性C#基础教程(http://www.tutorialspoint.com/csharp/csharp_properties.htm)本读了' andrew689' – MethodMan 2014-12-05 21:06:46
问题出在你的构造函数中,你没有调用属性来设置值,而是直接将它设置为成员变量。 – Sorceri 2014-12-05 21:09:28
我发誓我已经多次看过这个相同的问题;这是一个任务还是什么? – 2014-12-05 21:20:47