Fil*_*son 1 .net c# asp.net webforms
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
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误消息是我的枚举密码具有可访问性而不是属性Outcome1,但我不明白为什么.
该属性称为Outcome1,因为否则名称在Visual Studio中混淆.
你的枚举具有private可见性,因为你没有给它一个明确的可见性,它嵌套在你的SecretNumber类中.
你不能使用类型作为参数或者返回类型属于公开暴露成员1时,该类型是不是也公开-否则呼叫者不知道怎么用它做.
你可以把它公之于众:
public enum Outcome
Run Code Online (Sandbox Code Playgroud)
1这不是很一样"的公共成员".例如,类型中的public(非重写)方法internal可以将其他内部成员称为参数 - 因为该方法仍然只能由另一个知道"包含" internal类型的类型调用.