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

Hal*_*ier -1 c# model-view-controller asp.net-mvc types optional

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

我该怎么做才能做到这一点呢?

public new object Session (String strSession, Type objValue = null)
{
    // Execute logic
}
Run Code Online (Sandbox Code Playgroud)

要么

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

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

Mih*_*tea 6

您可以使用object(这是所有.NET类型的基本类型),也可以使用通用方法。

public new object Session (String strSession, object objValue = null)
{
    // Execute logic
}
Run Code Online (Sandbox Code Playgroud)

要么

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

编辑:

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

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

在此处阅读有关装箱和拆箱的更多信息。