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 に答える