2017-01-15 13 views
0

を要する:ジェネリックメソッド 'Program.Sort3Vars(T []、T []、T [])' を使用C#の一般的な方法:type引数はエラーを取得

1型引数を必要とします。

ここでは定義されていませんか?

Sort3Vars<int, string, string>(cost, var1, var2); 

これは私が作成しているソートアルゴリズムです。私は整数や文字列、倍精度浮動小数点数などでソートできるようにしたいのですが、別のデータ型で同じメソッドを複数回書く必要はありません。

これは私がエラーを取得している私のコードです。

namespace ConsoleApplication10 
{ 
    class Program 
    { 
     public static int[] cost = { 2, 5, 3, 4, 2, 1 }; 
     public static double[] costdouble = { 2.5, 4.30, 3.33, 4, 2, 1.10 }; 
     public static string[] var1 = { "apple", "mango", "banana", "grapes", "chicken", "ham" }; 
     public static string[] var2 = { "fruit", "fruit", "fruit", "fruit", "meat", "meat", }; 

     static void Main(string[] args) 
     { 
      Sort3Vars<int, string, string>(cost, var1, var2); 
      //Using generic method 'Program.Sort3Vars(T[],T[],T[])' requires 1 type arguments. 
     } 

     public static void Sort3Vars<T>(T[] tkey, T[] tvar1, T[] tvar2) 
     { 
      //sort tvar1, tvar2 by cost/tkey stub. 
     } 
    } 
} 
+0

方法は** 1つの**ジェネリック型を持っており、あなたは** 3 ** ... –

+0

ああは完璧にしたいです!ありがとう。私はかなり新しくC#だから、ジェネリックを完全に理解していなかった。私はT、U、Xを追加しました。それはトリックをするようでした!ご協力いただきありがとうございます! – masterg174

答えて

2

これは3つの引数とすべての3つの引数に同じである1つの汎用パラメータ、T、との方法です。あなたは3つの汎用パラメータ、各引数に1つ持つメソッドをしたい:

public static void Sort3Vars<TKey, T1, T2>(TKey[] tkey, T1[] tvar1, T2[] tvar2) 
{ 
    //sort tvar1, tvar2 by cost/tkey stub. 
} 
関連する問題