Sé el operador =
no puede ser sobrecargado, pero tiene que haber una manera de hacer lo que quiero aquí:operador de asignación sobrecarga en C#
Estoy creación de clases para representar unidades cuantitativas, ya que' Estoy haciendo un poco de física. Aparentemente no puedo heredar de una primitiva, pero quiero que mis clases se comporten exactamente como primitivas; solo quiero que se tipeen de manera diferente.
Así que me gustaría poder ir,
Velocity ms = 0;
ms = 17.4;
ms += 9.8;
etc.
No estoy seguro de cómo hacer esto. Pensé que escribiría algunas clases como las siguientes:
class Power
{
private Double Value { get; set; }
//operator overloads for +, -, /, *, =, etc
}
Pero aparentemente no puedo sobrecargar el operador de asignación. ¿Hay alguna manera de que pueda obtener este comportamiento?
¿Ha mirado la función 'unidades de medida' de F #? conoce unidades estándar (ISO) como M, KG y M/S, y también puede calcular con unidades. –
absolutamente, lo estoy usando ahora. No conoce las unidades ISO, sino que usted mismo define las unidades, como '[] tipo m; [] Tipo s' y luego se puede usar cosas como 'vamos a = 9,8 /4,3
' 'lo que da un val: flotar = 2.279069767' –
Lo sentimos, quiero decir las unidades del SI, que están predefinidos en' Microsoft. FSharp.Math.SI'. Ver: http://blogs.msdn.com/b/andrewkennedy/archive/2008/09/02/units-of-measure-in-f-part-two-unit-conversions.aspx –