Operador ?? en C#
Cuando programamos siempre tratatamos de escribir menos código no ? Pero a simple vista, que es más facil de entender:
if (_AppContext == null) { _AppContext = new AppContext(); } return _AppContext;
o esto:
return _AppContext = _AppContext ?? new AppContext();
Sean sinceros, dije a simple vista y mirandolo rápido !
El operador ?? está muy bueno, nos ahorra unas lineas de código, pero a mi manera de ver, el primer ejemplo a simple vista es mucho más facil de leer.
Tagged with: C#
7 Responses to Operador ?? en C#
Leave a Reply Cancel reply
-
Categories
- .NET
- ActiveRecord
- agil
- Alt.Net
- AOP
- Asp.net MVC
- blog
- C#
- codegeneration
- cosas interesantes
- db4o
- db4o-analyzer
- DLR
- enterprise-library
- expresiones regulares
- General
- Hibernate
- IoC
- it
- Java
- LINQ
- Linux
- Lucene
- Mocking
- Mono
- monosms
- MVC
- NAnt
- NHibernate
- NHibernate.Burrow
- NHibernate.Contrib
- NHibernate.Validator
- noticias
- O/R Mapping
- Open Source
- patrones
- personal
- podcast
- programación
- Redes Neuronales
- Refactoring
- regex
- Scrum
- Security
- Shards
- Sin Categoría
- Spring
- SqlServer
- Testing
- tips
- Tool
- tutorial
- Ubuntu
- uNHAddIns
- video
- Virtualización
- Visual Basic.Net
- Visual Studio
- VMWare
- Web
-
Articles
- June 2011
- May 2011
- November 2009
- October 2009
- April 2009
- March 2009
- February 2009
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- March 2006
- February 2006
- December 2005
- November 2005
- October 2005
-
Meta





Me parece que se puede abusar bastante de ese operador ??
pero me parece que elegiste un mal ejemplo.
Yo personalmente lo asocio a este operador con nullable types y ahi lucen mejor, por ejemplo:
int? nullableNumero = 8;
int numero = nullableNumero ?? 0;
eso es codigo valido y tiene mas sentido que el que expusiste, ademas me parece ese mas facil de leer que:
int numero;
if (nullableNumero.HasValue)
numero = nullableNumero.Value;
else
numero = 0;
con otros tipos que no son nullables por ahi tambien es util, y hace las cosas mas simple, por ejemplo en ASP.NET si tenes que escribir algo podes aprovechar el y te ahorras el TIIIPICO inline-if
Saludos!!
Arreglo porke me comio los y te ahorras el TIIIPICO inline-if
Saludos y a ver si quedan
Arreglo porke me comio los
Arreglo porke me comio los <%:
… podes aprovechar el < %= persona.Nombre ?? string.Empty % > y te ahorras el TIIIPICO inline-if < %= (persona.Nombre == null) ? “” : persona.Nombre % >
Saludos y a ver si quedan
Por cierto, un problema de validacion del contenido …
pero que tienen los blogs con el IE??? y los css con el IE? cualquier desarrollador web que se precie de tal deberia revisar el estilo que tiene las paginas, por lo menos en los 2 navegadores mas usados.. o IE ya no es el mas usado? *-) Despues avisame Dario y te paso un shot de como se ve esto en IE7… (y de paso vas acumulando excusas para volver a cambiar el blog)
Guille, justamente, vos decis que se puede aprovechar bastante este operador, y yo no lo niego, en este ejemplo solamente (a mí parecer), me parece a simple vista, más entendible el primer código. Tampoco es que el de abajo no se entiende. Pero mirás el primero y es más que claro, para que veas…en mi código yo había elegido la opción más corta, pero no me gustó como quedaba, por que al pasar, tenés que detenerte un ratito y pensar en el operador, pensar en su función, y luego lo entendés, y aparte en la función que estaba no sumaba 10 lineas en total, entonces no tuve problemas de “alargar” un poquito la función en ganancia de legibilidad.
Vale, como dicen en espania, yo es que crei que hablabais en general