我想在不使用可选参数的情况下重载函数。当我使用泛型时,我遇到了一个问题;但是,它适用于简单类型。我很困惑,谢谢你的帮助。 B类使用int来验证我的语法;而C类是我想要完成的。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace X
{
class A
{
}
class B
{
public static int f(int i1, int i2)
{
return i1 + 12;
}
public int ix(Func<int,int,int> f1,int v1)
{
return 1;
}
public void iy(Func<int, int, int> f1, int v1)
{
int i = ix(f1, 1);
}
public void iz()
{
int i = ix(f, 1);
}
}
class C
{
public static List<A> f(List<A> a, int v)
{
return new List<A>();
}
public int ax(Func<List<A>, List<A>, int> f1, int v1)
{
return 1;
}
public void ay(Func<List<A>, List<A>, int> f1, int c)
{
int i = ax(f1, c);
}
public void az()
{
int i = ax(f, 1);
}
}
}
答案 0 :(得分:0)
你有一个小错误。您的方法签名不匹配。
您需要更改C.F(..)的定义,它应该是:
public static int f(List<A> a, List<A> b)
{
return 1; //List<A>();
}