【发布时间】:2012-02-24 17:24:01
【问题描述】:
public class SecretNumber
{
//Construktor
public SecretNumber()
{
Initialize();
_previousGuesses = new List<int>();
}
//Constant
public const int MaxNumberOfGuesses = 7;
//Field
private int _number;
private List<int> _previousGuesses;
//Property
public bool CanMakeGuess
{
get;
}
public int Count
{
get;
}
public int? Number
{
public get;
}
//Lite oklart hur man ska göra när fälten är autoimplementerade
public Outcome Outcome1
{
get
{
return Outcome1;
}
private set
{
Outcome1 = value;
}
}
public ReadOnlyCollection<int> PreviousGuesses
{
get;
set;
}
//Methods
public void Initialize()
{
Random random = new Random();
_number = random.Next(1, 100);
_previousGuesses.Clear();
Outcome1 = Outcome.Indefinite;
}
private Outcome MakeGuess(int guess)
{
if (Number > 1 && Number < 100)
{
if (PreviousGuesses.Contains(guess))
{
return Outcome.PreviousGuess;
}
else if (PreviousGuesses.Count >= MaxNumberOfGuesses)
{
return Outcome.NoMoreGuesses;
}
if (Number == guess)
{
return Outcome.Correct;
}
else if (Number < guess)
{
return Outcome.High;
}
// else if (Number > guess)
// {
return Outcome.Low;
// }
}
else
{
throw new ArgumentOutOfRangeException("Måste vara inom intervallet 1-100");
}
}
//Enumerator
enum Outcome
{
Indefinite,
Low,
High,
Correct,
NoMoreGuesses,
PreviousGuess
}
}
我收到错误消息,指出我的枚举 Secret number 的可访问性低于属性 Outcome1,但我不知道为什么。
该属性称为 Outcome1,否则名称会在 Visual Studio 中混淆。
【问题讨论】: