¿Qué significa el operador "= > " en una propiedad en C#? [duplicar]
Esta pregunta ya tiene una respuesta aquí:
¿Qué significa este código?
public bool property => method();
6 answers
Esta es una propiedad con cuerpo de expresión, una nueva sintaxis para propiedades calculadas introducida en C# 6, que le permite crear propiedades calculadas de la misma manera que crearía una expresión lambda. Esta sintaxis es equivalente a
public bool property {
get {
return method();
}
}
Una sintaxis similar también funciona para los métodos:
public int TwoTimes(int number) => 2 * number;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-27 10:41:52
Esa es una propiedad de cuerpo de expresión. Véase MSDN por ejemplo. Esto es solo una abreviatura de
public bool property
{
get
{
return method();
}
}
Las funciones con cuerpo de expresión también son posibles:
public override string ToString() => string.Format("{0}, {1}", First, Second);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-29 17:03:38
Como algunos mencionaron, esta es una nueva característica traída primero a C # 6, extendieron su uso en C # 7.0 para usarla con getters y setters, también puede usar la sintaxis de expresión bodied con métodos como este:
static bool TheUgly(int a, int b)
{
if (a > b)
return true;
else
return false;
}
static bool TheNormal(int a, int b)
{
return a > b;
}
static bool TheShort(int a, int b) => a > b; //beautiful, isn't it?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-23 07:39:23
=>
usado en propiedad es un expression body
. Básicamente una forma más corta y limpia de escribir una propiedad con solo getter
.
public bool MyProperty {
get{
return myMethod();
}
}
Se traduce a
public bool MyProperty => myMethod();
Es mucho más simple y legible, pero solo puede usar este operador desde C# 6 y aquí encontrará documentación específica sobre el cuerpo de la expresión.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-27 12:40:51
Es la expresión simplificación corporal.
public string Text =>
$"{TimeStamp}: {Process} - {Config} ({User})";
Referencia; https://msdn.microsoft.com/en-us/magazine/dn802602.aspx
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-27 15:23:02
Que es una propiedad de expresión bodied. Se puede utilizar como una simplificación de getters de propiedades o declaraciones de métodos. Desde C # 7 también se expandió a otros tipos de miembros como constructores, finalizadores, configuradores de propiedades e indexadores.
Consulte la documentación de MSDN para obtener más información.
"Las definiciones del cuerpo de expresión le permiten proporcionar la implementación de un miembro de una forma muy concisa y legible. Puede utilizar una definición de cuerpo de expresión siempre que la lógica para cualquier el miembro soportado, como un método o una propiedad, consiste en una sola expresión."
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-24 13:39:37