@Smilleey

Как работать с вложенными классами?

Добрый вечер. Я разрабатываю класс, в котором может быть до 500 полей. Хотелось бы упорядочить поля по смысловой нагрузке для облегчения именования и доступа. Что имеется ввиду - верхний уровень класс Appeal, включающий в себя подклассы Reply, Reviewal, Expertise и прочие, включающие в себя свои поля.
Подскажите, пожалуйста, как сделать так, чтобы можно было получать доступ к данным в подобном виде:
Appeal appeal new Appeal();
 repdate = appeal.Reply.Date;

Спасибо.
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
@Sumor
Внёс исправления в Ваш код.
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            A test = new A();
            Console.WriteLine(test.bPart.testMethod());
            Console.ReadLine();
        }
    }
    class A
    {
        public B bPart = new B();

        public class B
        {
            private string testB = "I'm test in class B";
            public string testMethod ()
            {
                return testB;
            }
        }
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
public class Reply
{
public Date Date;
}

public class Appeal
{
public Reply Reply;
}
Ответ написан
Комментировать
@Smilleey Автор вопроса
Хотелось бы нечто следующее:
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            A test = new A();
            Console.WriteLine(test.B.testMethod());
            Console.ReadLine();
        }
    }
    class A
    {
        public class B
        {
            private string testB = "I'm test in class B";
            public string testMethod ()
            {
                return testB;
            }
        }
    }
}

Но данный код вызывает ошибку -
An object reference is required for the non-static field, method, or property 'A.B.testMethod()' и
'B': cannot reference a type through an expression; try 'A.B' instead
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы