【问题标题】:Overload Function with List as a Parameter以列表为参数的重载函数
【发布时间】:2012-05-16 06:04:18
【问题描述】:

我想创建一个以 C# List 数据类型为参数的函数。

public void foo(List<Something> obj)
{
...
}

但我想将任何类型的 List 类型传递给函数,我的意思是,像这样

List<Class1> obj1 = new List<Class1>();
foo(obj1);

List<Class2> obj2 = new List<Class2>();
foo(obj2);

我可以这样做吗?这个怎么做?提前致谢

【问题讨论】:

标签: c# .net list generics overloading


【解决方案1】:

为您的 foo 方法添加一个通用参数。

public void foo<T>(List<T> obj)
{
...
}

您可以在here找到更多关于他们的信息。

【讨论】:

    【解决方案2】:

    使用generics

    public void foo<T>(List<T> obj)
    {
    ...
    }
    

    打个电话

     foo<Class1>(new List<Class1>());
     foo<Class2>(new List<Class2>());
    

    以上可以通过使用generics type inference进一步简化

     foo(new List<Class1>());
     foo(new List<Class2>());
    

    【讨论】:

    • 请注意,类型推断将处理此处的类型参数,因此您可以只调用foo(new List&lt;Class1&gt;())
    • 谢谢。我不知道类型推断。只是通过你的blog
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 2015-10-07
    • 2023-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多