Es lógicamente imposible que no tenga ningún valor. Tendrá que devolver algo, un grupo de 1s y 0s que al menos se cree que es una referencia a Tuple<String, String>[]
, por lo que tiene un valor.
Es también el caso de que todos los campos de clases consiguen el sistema a su valor por defecto (default(T)
para cualquier tipo T
que son, que es null
para todos los tipos de referencia). De lo contrario, sería posible tener un objeto que estuviera en un estado que no solo no tuviera sentido en términos de lo que hace, sino que no tuviera ningún sentido según las reglas de lo que .NET espera que hagan los objetos. Esto incluye los campos ocultos detrás de las propiedades automáticas.
Ahora, en algunos idiomas que podemos hacer el equivalente a esto:
public Tuple<String, String>[] Breadcrumbs
{
get
{
Tuple<String, String>[] whatIWillSend;
return whatIWillSend;
}
}
Si esto se permite, whatIWillSend
tendría un valor definido no por una decisión consciente de su parte, sino por lo que pasó a ser en memoria en el momento. Podría ser nulo, podría ser un Tuple<String, String>[]
válido por pura coincidencia (¡pero no el que usted quería usar!), podría ser un Dictionary<int, List<string>>
que el tiempo de ejecución ahora va a pensar que es realmente un Tuple<String, String>[]
(ahí va el tipo de seguridad de todo el sistema), podría ser un cuarto de una estructura decimal
. (En los lenguajes que permiten tales cosas, también podría ser un valor bien conocido que depura los lenguajes establecidos en estos casos precisamente para ayudar a encontrar errores causados por él).
Eso es lo más cercano que podemos llegar a una propiedad que no tiene ningún valor. Sin embargo, tenga en cuenta que:
- Aún tendría un valor, pero no un valor significativo.
- No tenemos permitido hacer esto en C# de todos modos.
+1 por "nombre indescriptible" :) –