方法,可以接受各种类型

本文关键字:种类 类型 方法 | 更新日期: 2023-09-27 17:51:12

我想知道是否有一种方法可以创建一个可以接受可变数据类型的方法。有时我需要将对象传递给该方法有时是基本类型,如

SomeMethod(object);
SomeMEthod(r,p,q); //Where r,p,q are integers

这个方法的签名是什么样子的呢?

方法,可以接受各种类型

如果您不关心方法中参数的类型,您可以简单地使用:

public void SomeMethod(params object[] list)

如果需要以不同的方式处理参数类型,则必须更具体,并创建几个强类型方法的重载。

如果您事先不知道类型,并且它实际上可以是任何类型,那么object参数将适用于引用类型和值类型。

的例子:

public static void Method(params object[] list) 
{
  for ( int i = 0 ; i < list.Length ; i++ )
      Console.WriteLine(list[i]);
}
Method(1, 'a', "test"); 

MSDN文档

也有方法重载,您传递多个具有相同名称但不同签名的方法。

public void SomeMethod(object o)
{
}
public void SomeMethod(int r, int p, int q)
{
}

如果你想让一个方法接受任意数量的任何类型,即使可能非常缓慢和不可维护:

void Foo(params object[] arguments)
{
    //Operate
}

上面的方法几乎适用于任何类型,但对于值类型,它必须将它们装箱,这需要处理。如果你想让你的代码更有性能,我建议你创建重载来满足你的需求。