2017-01-15 2 views
0

Erste Fehler:C# Allgemeine Methoden: Typ Argument erforderlich

Verwendung generische Methode 'Program.Sort3Vars (T [], T [], T [])' erfordert 1 Typargument.

Sind sie hier nicht definiert?

Dies ist für einen Sortieralgorithmus, den ich mache. Ich möchte in der Lage sein, nach einer Ganzzahl oder einer Zeichenkette oder einem Doppel usw. zu sortieren, ohne die gleiche Methode mehrmals mit nur einem anderen Datentyp schreiben zu müssen.

Dies ist mein Code, wo ich den Fehler bekomme.

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

Das Verfahren hat ** ** eine generische Art und Sie wollen ** drei ** ... –

+0

Ah perfekt haben! Vielen Dank. Ich bin ziemlich neu zu C# so war nicht vollständig verstehen Generika. Ich fügte T, U und X hinzu und das schien den Trick zu machen! Danke für Ihre Hilfe! – masterg174

Antwort

2

Dieses Verfahren mit 3 Argumente ist und ein generischer Parameter, T, ist, dass das gleiche für alle 3 Argumente. Sie wollen eine Methode mit 3 generischen Parametern, eine für jedes Argument:

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