Statische anonyme FunktionenStatic anonymous functions

ZusammenfassungSummary

Lässt einen static-Modifizierer für Lambdas und anonyme Methoden zu. Dadurch wird die Erfassung von lokalen oder instanzzuständen aus enthaltenden Bereichen nicht zugelassen.Allow a 'static' modifier on lambdas and anonymous methods, which disallows capture of locals or instance state from containing scopes.

MotivationMotivation

Vermeiden Sie unbeabsichtigt das Erfassen des Zustands aus dem einschließenden Kontext. Dies kann zu unerwarteter Beibehaltung von aufgezeichneten Objekten oder unerwarteten zusätzlichen Zuordnungen führen.Avoid unintentionally capturing state from the enclosing context, which can result in unexpected retention of captured objects or unexpected additional allocations.

Detaillierter EntwurfDetailed design

Eine Lambda-oder anonyme Methode kann über einen static Modifizierer verfügen.A lambda or anonymous method may have a static modifier. Der- static Modifizierer gibt an, dass die Lambda-oder anonyme Methode eine statische anonyme Funktion ist.The static modifier indicates that the lambda or anonymous method is a static anonymous function.

Eine statische anonyme Funktion kann den Zustand nicht aus dem einschließenden Bereich erfassen.A static anonymous function cannot capture state from the enclosing scope. Demzufolge sind lokale, Parameter und this aus dem einschließenden Bereich in einer statischen anonymen Funktion nicht verfügbar.As a result, locals, parameters, and this from the enclosing scope are not available within a static anonymous function.

Eine statische anonyme Funktion kann nicht auf Instanzmember von einem impliziten oder expliziten this oder base Verweis verweisen.A static anonymous function cannot reference instance members from an implicit or explicit this or base reference.

Eine statische anonyme Funktion kann auf Member static aus dem einschließenden Bereich verweisen.A static anonymous function may reference static members from the enclosing scope.

Eine statische anonyme Funktion kann auf constant Definitionen aus dem einschließenden Bereich verweisen.A static anonymous function may reference constant definitions from the enclosing scope.

nameof() in einer statischen anonymen Funktion kann auf lokale, Parameter oder this oder base aus dem einschließenden Bereich verwiesen werden.nameof() in a static anonymous function may reference locals, parameters, or this or base from the enclosing scope.

Zugriffsregeln für Elemente private im einschließenden Bereich sind für static und nicht static Anonyme Funktionen identisch.Accessibility rules for private members in the enclosing scope are the same for static and non-static anonymous functions.

Es wird nicht garantiert, ob eine statische anonyme Funktions Definition als static Methode in den Metadaten ausgegeben wird.No guarantee is made as to whether a static anonymous function definition is emitted as a static method in metadata. Dies wird von der compilerimplementierung bis zur Optimierung verbleiben.This is left up to the compiler implementation to optimize.

Eine nicht static lokale Funktion oder eine anonyme Funktion kann den Zustand aus einer einschließenden statischen anonymen Funktion aufzeichnen, aber keinen Zustand außerhalb der einschließenden statischen anonymen Funktion erfassen.A non-static local function or anonymous function can capture state from an enclosing static anonymous function but cannot capture state outside the enclosing static anonymous function.

Wenn Sie den- static Modifizierer aus einer anonymen Funktion in einem gültigen Programm entfernen, wird die Bedeutung des Programms nicht geändert.Removing the static modifier from an anonymous function in a valid program does not change the meaning of the program.