Менее доступный, чем метод

#c#

#c#

Вопрос:

 class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            student s = new student();

            foreach (var item in p.ab())
            {
                Console.WriteLine(item.id item.name item.fname);  
            }

        }

        public  List<student> ab() 
        {
            List<student> l = new List<student>()
              {
                 new student{id=1,name="hjk",fname="xyz"},
              };
            return l;
         }

        class student
        {
            public int id { get; set; }
            public String name { get; set; }
            public String fname { get; set; }
        }
  

Непоследовательная доступность:

возвращаемый тип ‘System.Коллекции.’Generic.List’ менее доступен, чем метод ‘consoleapplication 7.Program.ab()’

Комментарии:

1. попробуйте добавить какое-нибудь описание, чего вы хотите достичь? Вот как работает этот веб-сайт.

2. student это private класс, список которого вы возвращаете из public метода. Это недопустимо. Возвращаемые типы общедоступных методов должны быть общедоступными.

Ответ №1:

Добавить public в объявление класса —- возвращаемый тип List<student> менее доступен, чем метод (метод является общедоступным), поэтому вам нужно сделать тип общедоступным

 public class student
    {
        public int id { get; set; }
        public String name { get; set; }
        public String fname { get; set; }
    }
  

Комментарии:

1. Слишком быстро, я собирался опубликовать то же самое. в любом случае поздравляю 🙂

Ответ №2:

Ваш основной метод должен быть заключен внутри общедоступного класса

студент должен быть общедоступным

проверьте следующий фрагмент

 using System;
using System.Collections.Generic;
public class Program
    {
        public static void Main(string[] args)
        {
            Program p = new Program();
            student s = new student();

            foreach (var item in p.ab())
            {
                Console.WriteLine(item.id item.name item.fname);  
            }

        }

        public  List<student> ab() 
        {
            List<student> l = new List<student>()
              {
                 new student{id=1,name="hjk",fname="xyz"},
              };
            return l;
         }

}
 public class student
        {
            public int id { get; set; }
            public String name { get; set; }
            public String fname { get; set; }
        }
  

Надеюсь, это поможет