Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Func<T, TResult>-Delegat

 

Veröffentlicht: Oktober 2016

Kapselt eine Methode, die über einen Parameter verfügt und einen Wert des Typs zurückgibt, der durch den TResult-Parameter angegeben wird.

Informationen zum Durchsuchen des .NET Framework-Quellcodes für diesen Typ finden Sie unter der Reference Source.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

generic<typename T, typename TResult>
public delegate TResult Func(
	T arg
)

Parameter

arg
Type: T

Der Parameter der Methode, die dieser Delegat kapselt.

Rückgabewert

Type: TResult

Der Rückgabewert der Methode, die dieser Delegat kapselt.

Typparameter

inT

Der Typ des Parameters der Methode, die dieser Delegat kapselt.

outTResult

Der Typ des Rückgabewerts der Methode, die dieser Delegat kapselt.

System_CAPS_noteHinweis

Die .NET Framework-Quellcodes für diesen Typ finden Sie unter der Reference Source. Sie können den Quellcode online Durchsuchen, Referenz für die Offlineanzeige herunterladen und schrittweise durchlaufen (inklusive Patches und Updates) während des Debuggens; see instructions.

Dieser Delegat können Sie eine Methode darstellen, die als Parameter übergeben werden kann, ohne explizit einen benutzerdefinierten Delegaten zu deklarieren. Die gekapselte Methode muss der Methodensignatur entsprechen, die von diesem Delegaten definiert ist. Dies bedeutet, dass die gekapselte Methode einen Parameter besitzen muss, der als Wert übergeben wird, und einen Wert zurück geben muss.

System_CAPS_noteHinweis

Auf eine Methode zu verweisen, die über einen Parameter verfügt und gibt void (oder in Visual Basic deklariert wird als eine Sub sondern als eine Function), die generische Action<T> stattdessen delegieren.

Bei Verwendung der Func<'T, 'TResult> Delegaten, Sie müssen nicht explizit einen Delegaten definieren, die eine Methode mit einem einzelnen Parameter kapselt. Der folgende Code deklariert z. B. explizit einen Delegaten, mit dem Namen ConvertMethod und weist einen Verweis auf die UppercaseString Methode, um eine Delegatinstanz.

Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.

Im folgende Beispiel wird dieser Code vereinfacht, durch die Instanziierung der Func<'T, 'TResult> Delegaten explizit einen neuen Delegaten definieren und eine benannte Methode zuweisen.

Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.

Sie können auch die Func<'T, 'TResult> delegieren mit anonymen Methoden in C# geschrieben, wie im folgenden Beispiel veranschaulicht. (Eine Einführung für anonyme Methoden finden Sie unter Anonyme Methoden (C#-Programmierhandbuch).)

using System;

public class Anonymous
{
   public static void Main()
   {
      Func<string, string> convert = delegate(string s)
         { return s.ToUpper();}; 

      string name = "Dakota";
      Console.WriteLine(convert(name));   
   }
}

Sie können auch einen Lambda-Ausdruck zum Zuweisen einer Func<'T, 'TResult> zu delegieren, wie im folgenden Beispiel veranschaulicht. (Eine Einführung in Lambda-Ausdrücke finden Sie unter Lambda Expressions (Visual Basic) und Lambda-Ausdrücke (C#-Programmierhandbuch).)

Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.

Der zugrunde liegende Typ eines Lambda-Ausdrucks ist eine der generischen Func Delegaten. Dadurch möglich, einen Lambda-Ausdruck als Parameter zu übergeben, ohne explizit einem Delegaten zuzuweisen. Insbesondere, da viele Methoden von Typen in der System.Linq Namespace haben Func<'T, 'TResult> Parameter können übergeben dieser Methoden einen Lambda-Ausdruck ohne explizit Instanziieren einer Func<'T, 'TResult> delegieren.

Im folgenden Beispiel wird veranschaulicht, wie deklarieren und Verwenden einer Func<'T, 'TResult> delegieren. Dieses Beispiel deklariert eine Func<'T, 'TResult> Variable und weist ihm einen Lambdaausdruck, der die Zeichen in einer Zeichenfolge in Großbuchstaben konvertiert. Der Delegat, der diese Methode kapselt wird anschließend zum Übergeben der Enumerable::Select<TSource, TResult> Methode, um die Zeichenfolgen in ein Array von Zeichenfolgen in Großschreibung ändern.

Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: