Объект класса по имени

Всем привет! Очень нужна ваша помощь: Как мне создать объект класса, зная его имя? Условно, у меня есть enum, содержащий в себе: Black, White, Yellow.

Нужно создать объект, учитывая выбранное в enum, по типу new Black(), new (Значение enum). Заранее спасибо за ответ!


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

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

Очень мало информации в вопросе, нужно больше конкретики.

Если нужно просто возвращать новый объект по значению enum, то можно сделать что-то такое:

using System;

public class Script
{
    public ColorBase Create(ColorType color)
    {
        switch (color)
        {
            case ColorType.White:
                return new White();
            case ColorType.Yellow:
                return new Yellow();
            default: throw new ArgumentException();
        }
    }
}

public class ColorBase
{
}
public class White : ColorBase
{
}
public class Yellow : ColorBase
{
}

public enum ColorType
{
    White,
    Yellow,
}

Create будет возвращать новый объект на основе enum, который вы передали ему.

→ Ссылка