rogerp810 Ответов: 1

Как получить доступ к объекту в объекте?


Я получаю недопустимый инициализирующий член decapitator, когда пытаюсь установить SubIdName.Id к значению (я пробовал несколько различных способов сделать это). У меня есть класс, который имеет подкласс, и мне нужно установить объекты в классе и подклассе. Я думал, что это будет легко, но у меня возникли проблемы, пытаясь заставить это работать какие-нибудь идеи?

Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    public class subClass
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
    public class mainClass
    {
      public string MainId { get; set; }
      public string description { get; set; }
      public subClass SubIdName { get; set; }

    }
    class Program
    {
        static void Main(string[] args)
        {
            mainClass m = new mainClass()
            {
                MainId = "Main ID Goest Here",
                description = "Main description goes here",
                SubIdName.Id = 1
            };

        }
    }
}

rogerp810

Спасибо, и я приму ваше предложение по именованию переменных.

1 Ответов

Рейтинг:
9

#realJSOP

Согласно вашему образцу кода, Вы не создали экземпляр внутреннего объекта. Добавьте эту строку:

mainClass m = new mainClass()
{
    MainId = "Main ID Goest Here",
    description = "Main description goes here",
    // use this instead of your existing assignment
    SubIdName = new subClass() { Id = 1 };
};


Кстати, вы всегда должны стремиться использовать значимые имена переменных и классов, независимо от цели кода. "подкласс" - это действительно плохое название для класса. Развивайте хорошие привычки, пока вы учитесь, и вы будете более склонны продолжать эти практики, когда вы действительно начнете получать деньги за выполнение работы.