Как мне сделать элемент в элементе ООП

Т.е я хочу чтобы у меня было так

BingElement a;
Console.WriteLine(a.IMAGE);

Но как я понял, я делаю не так все, и у меня не работает

public class BingElement
        {
            public class ImageEl 
            {
                const string IMAGE = "image";
            }
            public class SearchEl 
            {
                const string SEARCH = "search";
            }
        }

Как мне поправить это? Или если я не правильно вообще делаю, как мне стоит сделать?

Я пытаюсь сделать гибкую систему аргументов(объектов) для методов


Ответы (1 шт):

Автор решения: aepot

Как-то так это делается

public class ImageEl 
{
    public string Name;
}

public class SearchEl 
{
    public string Text;
}

public class BingElement
{
    public ImageEl Image;
    public SearchEl Search;
}

Обращаться как-то так.

BingElement element = new BingElement();
element.Image = new ImageEl();
element.Image.Name = "Image";
element.Search = new SearchEl();
element.Search.Text = "Text";

Еще есть такая штука в C# как свойства, для публичных членов класса лучше использовать свойства.

Константы - это статические члены класса, они не сильно относятся к ООП, а скорее просто помогают писать красивый код.

То есть если у вас такая константа

public class ImageEl 
{
    public const string IMAGE = "image";
}

то обращаться к ней надо так

Console.WriteLine(ImageEl.IMAGE);
→ Ссылка