Powershell Hashtable Count y Keys Properties se sobrecargan

Planteamiento del problema: Las propiedades Count y Keys pueden sobrecargarse por un valor hash y no devolver sus valores esperados.

Mi código Powershell es este:

$hash = @{}
$hash.one = "Number 1"
$hash.two = "Number 2"

"Count is [{0}]" -f $hash.Count
$hash.Count = "Count's Hash Value"
"Count is now [{0}]" -f $hash.Count

Mi salida es esta:

Count is [2]
Count is now [Count's Hash Value]

¡La propiedad Count se sobrecarga! Estos problemas podrían causar que los usuarios diagnostiquen errores muy difíciles. Me confundió por un buen rato. El mismo problema se aplica a las "Llaves" o, de hecho, a cualquier Propiedad.

¿Tienes alguna idea sobre las mejores prácticas para evitar esta? Quizás un sistema diferente. o anteponer todas las claves con un carácter como:

$key = ":" + $key 

Sin embargo, no es muy elegante. Incluso ahora que conozco el problema, sospecho que lo olvidaré y volveré a cometer el mismo error.

Personalmente, creo que es un problema con la definición del lenguaje Powershell. Los . La notación (como en $ hash.MyKey) no debe permitirse para recuperar valores hash, solo para recuperar valores de propiedad. Solo un pensamiento. :-)

Gracias por tu ayuda.

Respuestas a la pregunta(1)

Su respuesta a la pregunta