Como entiendo predeterminado (objeto) donde 'objeto' es cualquier tipo de referencia siempre devuelve nulo, pero ¿puedo especificar cuál es el valor predeterminado? Por ejemplo, quiero default (object) == new object();Especifique el valor predeterminado para un tipo de referencia
Respuesta
Nº default(type)
siempre devolverá la misma cosa - un "cero' ed out "versión de ese tipo. Para un tipo de referencia, este es un identificador para un objeto que siempre se establece con un valor de cero, que equivale a null
. Para un tipo de valor, esta es siempre la estructura con todos los miembros configurados en cero.
No hay forma de anular este comportamiento: la especificación de idioma está diseñada de esta manera.
Editar: En cuanto a su comentario:
sólo para poder decir
FirstOrDefault()
y nunca obtener un valor nulo.
No lo recomendaría en ningún caso. Los usuarios esperan FirstOrDefault()
para devolver null
en caso de error. Sería mejor escribir su propio método de extensión:
static T FirstOrNewInstance<T>(this IEnumerable<T> sequence) where T : class, new()
{
return sequence.FirstOrDefault() ?? new T();
}
Lo sentimos, no soy Jon Skeet ...
Pero de todos modos, la respuesta es "no se puede"
Normalmente, Jon Skeet explica por qué (o por qué no en este caso) :) – PostMan
@PostMan, como dije, no soy Jon Skeet;). De todos modos, no creo que haya algo que explicar aquí ... simplemente no es posible. –
Solo hazlo, estarás bien :) Pero sí, estoy de acuerdo, no hay otra explicación que no puedas. (aparte de una decisión de diseño) – PostMan
- 1. Especifique un controlador predeterminado para ODBC
- 2. Verifique si un objeto dado (referencia o tipo de valor) es igual a su valor predeterminado
- 3. valor predeterminado Tipo de recopilación
- 4. PHP Especifique el tipo de devolución Sugerencias para un método
- 5. Especifique el filtro predeterminado en jqgrid
- 6. C# - Contenedor de referencia para el tipo de valor
- 7. ¿Cómo obtengo el valor predeterminado de un tipo genérico?
- 8. CLI de Apache Commons: tipo de opción y valor predeterminado
- 9. ¿Predeterminado para el tipo genérico?
- 10. Valor predeterminado para el constructor de atributos?
- 11. Especifique el valor predeterminado en el archivo de configuración XML de Hibernate
- 12. ¿Puede un tipo ser un tipo de referencia y un tipo de valor al mismo tiempo?
- 13. ¿Cuál es el valor predeterminado para un campo si no se proporciona un valor predeterminado?
- 14. Parámetro predeterminado para una referencia de lista
- 15. ¿Cómo puedo obtener el valor predeterminado para un tipo en Scala?
- 16. ¿Cómo establecer el valor predeterminado para un parámetro de función de tipo TEncoding?
- 17. C#: ¿Cómo encontrar el valor predeterminado para un Tipo de tiempo de ejecución?
- 18. Valor predeterminado para el parámetro de función?
- 19. Genéricos C#: tipo de referencia vs. valor
- 20. tipo de valor tipo de objeto de referencia en javascript
- 21. ¿Cómo puedo llamar al valor predeterminado (T) con un tipo?
- 22. ¿Hay un tipo MIME "predeterminado"?
- 23. ¿Almacenar una referencia a un tipo de valor?
- 24. Especifique un DataTemplate vacío predeterminado en lugar del predeterminado 'ToString()' DataTemplate
- 25. Esquema XML: ¿se establece un valor predeterminado para un tipo complejo?
- 26. Especifique ControlTemplate para ItemsControl.ItemContainerStyle
- 27. cómo obtener el valor predeterminado de un tipo si el tipo solo se conoce como Tipo de sistema?
- 28. Cargar valor predeterminado para un comboBox extjs
- 29. Establecer un valor predeterminado para una propiedad
- 30. valor predeterminado para el campo en el modelo de Django
No, no es posible. ¿Puede decirnos el objetivo final aquí, es decir, por qué querría esta función? – Ani
No. ¿Y por qué tendrías que hacer eso? Si el objeto es nulo, ¡simplemente asigne uno nuevo! –
Solo para poder decir FirstOrDefault() y nunca obtener un nulo. Supongo que solo escribiré un nuevo método de extensión. –