0

我想重载一个函数而不使用可选参数。当我使用泛型时,我遇到了问题;但是,它适用于简单类型。我很困惑,所以感谢您的帮助。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);
        }
    }
}
4

1 回答 1

0

你有一个小错误。您的方法签名不匹配。

您需要更改 CF(..) 的定义,它应该是:

public static int f(List<A> a, List<A> b)
{
    return 1; //List<A>();
}
于 2012-08-25T04:24:53.277 回答