Parámetros de descarte lambdaLambda discard parameters
ResumenSummary
Permita que Descartes ( _ ) se use como parámetros de expresiones lambda y métodos anónimos.Allow discards (_) to be used as parameters of lambdas and anonymous methods.
Por ejemplo:For example:
- lambdas:
(_, _) => 0,(int _, int _) => 0lambdas:(_, _) => 0,(int _, int _) => 0 - métodos anónimos:
delegate(int _, int _) { return 0; }anonymous methods:delegate(int _, int _) { return 0; }
MotivaciónMotivation
No es necesario que los parámetros no usados tengan nombre.Unused parameters do not need to be named. La intención de los descartes es clara, es decir, no se usan ni se descartan.The intent of discards is clear, i.e. they are unused/discarded.
Diseño detalladoDetailed design
Parámetros de método En la lista de parámetros de una expresión lambda o un método anónimo con más de un parámetro denominado _ , estos parámetros son descartar parámetros.Method parameters In the parameter list of a lambda or anonymous method with more than one parameter named _, such parameters are discard parameters.
Nota: si se llama a un parámetro único _ , se trata de un parámetro normal por motivos de compatibilidad con versiones anteriores.Note: if a single parameter is named _ then it is a regular parameter for backwards compatibility reasons.
Los parámetros discard no introducen ningún nombre en los ámbitos.Discard parameters do not introduce any names to any scopes.
Tenga en cuenta que esto implica que no _ se ocultan los nombres (de subrayado).Note this implies they do not cause any _ (underscore) names to be hidden.
Nombres simples Si K es cero y el simple_name aparece dentro de un bloque y el espacio de declaración de variable local del bloque(o el de un bloque de inclusión) contiene una variable local, un parámetro (con la excepción de los parámetros de descarte) o una constante con el nombre I , el simple_name hace referencia a esa variable local, parámetro o constante y se clasifica como una variable o valor.Simple names If K is zero and the simple_name appears within a block and if the block's (or an enclosing block's) local variable declaration space (Declarations) contains a local variable, parameter (with the exception of discard parameters) or constant with name I, then the simple_name refers to that local variable, parameter or constant and is classified as a variable or value.
Ámbitos de A excepción de los parámetros de descarte, el ámbito de un parámetro declarado en una lambda_expression (expresiones de función anónimas) es el anonymous_function_body de ese lambda_expression con la excepción de los parámetros de descarte, el ámbito de un parámetro declarado en una anonymous_method_expression (expresiones de función anónimas) es el bloque de ese anonymous_method_expression.Scopes With the exception of discard parameters, the scope of a parameter declared in a lambda_expression (Anonymous function expressions) is the anonymous_function_body of that lambda_expression With the exception of discard parameters, the scope of a parameter declared in an anonymous_method_expression (Anonymous function expressions) is the block of that anonymous_method_expression.