gpt4 book ai didi

c# - Enum 的可访问性低于属性 结果 1

转载 作者:太空宇宙 更新时间:2023-11-03 18:14:13 26 4
gpt4 key购买 nike

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 中混淆。

最佳答案

你的枚举有 private可见性,因为你没有给它一个明确的可见性,它嵌套在你的 SecretNumber 中。类(class)。

当该类型不是公开的时,您不能将类型用作公开公开的成员的参数或返回类型1 - 否则调用者将不知道如何处理它。

您可以将其公开:

public enum Outcome

1 这与“公共(public)成员的”不太一样。例如, public internal 中的(非覆盖)方法type 可以将其他内部成员作为参数引用 - 因为该方法仍然只能由知道“包含” internal 的另一种类型调用无论如何都要输入。

关于c# - Enum 的可访问性低于属性 结果 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9435184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com