2009-04-16 3 views
1

Ich versuche, die Bedeutung und Verwendung der param Parameter in dieser Zeile aus einem RelayCommand Beispiel genommen zu verstehen:Wie kann ich dieses Beispiel mithilfe von "param" in C# zu arbeiten?

return new RelayCommand(param => MessageBox.Show("It worked.")); 

Erstens, ich verstehe, dass die „param“ Parameter nichts mit dem zu tun hat, "params" Stichwort, ist das korrekt?

public int Add(params int[] list) 
{ 
    int sum = 0; 
    foreach (int i in list) 
    sum += i; 
    return sum; 
} 

Zweitens welche Art von Delegierten Code kann ich hinzufügen müssen Sie das folgende Beispiel, um zu arbeiten?

using System; 
using System.Collections.Generic; 

namespace TestParam222 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("The total is {0}.", Tools.GetTest(param => 23)); 
      Console.ReadLine(); 
     } 
    } 

    class Tools 
    { 
     public static string GetTest(List<int> integers) 
     { 
      return "ok"; 
     } 
    } 
} 
+0

param ist kein Schlüsselwort. –

Antwort

6

param ist kein Schlüsselwort. Es ist der Parameter für einen Lambda-Ausdruck in Ihrer Probe. Sie müssten dafür sorgen, dass Ihre Methode einen Delegaten oder eine Ausdrucksstruktur annimmt, z.

using System; 
using System.Collections.Generic; 

namespace TestParam222 
{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 
     Console.WriteLine("The total is {0}.", Tools.GetTest(param => 23)); 
     Console.ReadLine(); 
    } 
    } 

    class Tools 
    { 
    public static string GetTest(Func<int, int> integers) 
    { 
     return "ok"; 
    } 
    } 
} 

Die Func<int,int> könnte tatsächlich sein jedeFunc<T,int> (oder Func<T,long> etc), weil Ihre Lambda-Ausdruck nirgendwohin param nicht verwendet. Alternativ könnte es ein Expression<Func<int,int>> usw.

Ich schlage vor, Sie für weitere Details über Lambda-Ausdrücke lesen, zum Beispiel in einem dieser SO Fragen:

+1

+1 richtig, du bist schnell auf diese einfachen auch, dang – bendewey

Verwandte Themen