Ваше перечисление имеет private
видимость, так как вы не дали ему явную видимость, и оно вложено в ваш SecretNumber
класс.
Вы не можете использовать тип в качестве параметра или возвращаемого типа члена, который доступен публично 1 , когда этот тип также не является публичным - в противном случае вызывающая сторона не будет знать, что с ним делать .
Вы можете просто сделать это публично:
public enum Outcome
1 Это не совсем то же самое, что и "публичного участника". Например, метод public
(не переопределяющий) в типе internal
может ссылаться на другие внутренние члены как параметры - поскольку метод все еще может вызываться только другим типом, который знает о «содержащем» типе internal
в любом случае.