如何将任何类型的值传递给函数
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。
所以本质上,我希望能够将多个参数传递给一个函数。其中之一是可选的,我也希望它采用任何类型的变量。
如何做到这一点,我是不是因为这样的事情而偏离了基地:
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。