如何将任何类型的值传递给函数

How to pass any type of value to function

所以本质上,我希望能够将多个参数传递给一个函数。其中之一是可选的,我也希望它采用任何类型的变量。

如何做到这一点,我是不是因为这样的事情而偏离了基地:

public new object Session (String strSession, Type objValue = null)
{
    // Execute logic
}

public new object Session <T> (String strSession, objValue<T> = null) 
{
    // Execute logic
}

不明白为什么这会被否决。我提供了清晰的代码片段不是吗?

您可以使用 object,这是所有 .NET 类型的基本类型,或者使用泛型方法。

public new object Session (String strSession, object objValue = null)
{
    // Execute logic
}

或者

public new object Session<T> (String strSession, T objValue = default) 
{
    // Execute logic
}

编辑:

由于T可以是任何类型,包括值类型(不能是null),default更适合通用版本。

我强烈推荐通用版本,因为对于值类型,第一个版本实际上强制装箱,这可能是一个性能问题。

阅读更多关于装箱和拆箱的信息here