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
}
}
我得到了錯誤信息,我的枚舉機密數字比屬性Outcome1具有可訪問性,但我不知道爲什麼。Enum擁有比屬性更好的可訪問性Outcome1
該屬性稱爲Outcome1,因爲否則名稱在Visual Studio中混淆了。
所以它應該在課外?謝謝。 – 2012-02-24 17:28:30
@HerrNilsson:它*可能在課外,但你仍然需要公開。只是嵌套類型的默認值是'private'而不是'internal'。這與「公共」無關。 – 2012-02-24 17:33:14
@HerrNilsson,如果枚舉的用法只在這個類中,那麼將它保留在同一類的範圍內。 – Pankaj 2012-02-24 18:22:07