将Type传递给方法?

时间:2017-03-23 15:21:43

标签: c#

我需要一些帮助指向正确的方向。我想创建一个可以处理不同类型的方法。我需要以某种方式传递这些类型并以某种方式使用它们。对此的任何指导都会很棒。这是方法,其中" TypeINeedToPassIn"是的,是的,你猜对了,我需要输入的类型:

public static object MatchAccountType(string acctTypeStr)
{
    var acctTypes = SharedUtils.GetEnumValues<TypeINeedToPassIn>();

    foreach (TypeINeedToPassIn acctType in acctTypes)
    {
        if (acctTypeStr.ToUpper() == acctType.ToString().ToUpper())
        {
            return acctType;
        }
    }

    return null;
}

TIA

1 个答案:

答案 0 :(得分:3)

您可以使方法通用以接受类型参数:

public static object MatchAccountType<T>(string acctTypeStr)

然后可以在方法中的代码中使用该类型:

public static object MatchAccountType<T>(string acctTypeStr)
{
    var acctTypes = SharedUtils.GetEnumValues<T>();

    foreach (T acctType in acctTypes)
    {
        if (acctTypeStr.ToUpper() == acctType.ToString().ToUpper())
        {
            return acctType;
        }
    }

    return null;
}

如果您需要在方法中的代码中与该类型进行更多交互,或者对可以使用的类型进行限制,则可以使用more to it that you can investigate。但只需要一个类型参数就可以通过简单地使它成为通用方法来完成。