Параметры функции Перечисления c#

Поскольку вы используете загрузчик, вы можете использовать col-md-4 и col-md-8, чтобы элементы были выровнены по вертикали. А чтобы текст + ввод находился посередине, вы можете использовать text-align: center;

Я привел пример здесь. скрипка

8
задан Community 23 May 2017 в 12:14
поделиться

4 ответа

Можно использовать родовую функцию:

    public void myFunc<T>()
    {
        var names = Enum.GetNames(typeof(T));

        foreach (var name in names)
        {
            // do something!
        }
    }

и звоните как:

    myFunc<e1>();

(РЕДАКТИРОВАНИЕ)

Компилятор жалуется, пробуете ли Вы к ограничению T кому: Enum или enum.

Так, для обеспечения безопасности типов можно изменить функцию на:

    public static void myFunc<T>()
    {
        Type t = typeof(T);
        if (!t.IsEnum)
            throw new InvalidOperationException("Type is not Enum");

        var names = Enum.GetNames(t);
        foreach (var name in names)
        {
            // do something!
        }
    }
9
ответ дан 5 December 2019 в 07:13
поделиться

Почему, не передавая тип? как:

 myfunc(typeof(e1));

public void myFunc( Type t )
{
}
9
ответ дан 5 December 2019 в 07:13
поделиться

Вы пытаетесь передать тип перечисления, как экземпляр того типа - пробует что-то вроде этого:

enum e1
{
    foo, bar
}

public void test()
{
    myFunc(e1.foo); // this needs to be e1.foo or e1.bar - not e1 itself
}

public void myFunc(Enum e)
{
    foreach (string item in Enum.GetNames(e.GetType()))
    {
        // Print values
    }
}
5
ответ дан 5 December 2019 в 07:13
поделиться

Использовать

public void myFunc( e1 e ) { // use enum of type e}

вместо

public void myFunc( Enum e ) { // use type enum. The same as class or interface. This is not generic! }
0
ответ дан 5 December 2019 в 07:13
поделиться
Другие вопросы по тегам:

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