Comment referiez-vous cela en gardant à l'esprit que vous avez des douzaines de mesures de plus à représenter? C'est un peu comme changer un int pour court ou long ou octet. Unité générique? Conversion de type implicite par une surcharge de l'opérateur? ToType() pattern? Classe de base abstraite? IConvertible?Refactorisation; créer des pseudo-primitives pour votre domaine d'application
public class lb
{
private readonly float lbs;
private readonly kg kgs;
public lb(float lbs)
{
this.lbs = lbs;
this.kgs = new kg(lbs * 0.45359237F);
}
public kg ToKg()
{
return this.kgs;
}
public float ToFloat()
{
return this.lbs;
}
}
public class kg
{
private readonly float kgs;
private readonly lb lbs;
public kg(float kgs)
{
this.kgs = kgs;
this.lbs = new lb(kgs * 2.20462262F);
}
public float ToFloat()
{
return this.kgs;
}
public lb ToLb()
{
return this.lbs;
}
}
Je déteste le fait que je dois utiliser System.Nullable <> (par exemple utiliser le?) Pour représenter des structures nulles. Les ressources qui peuvent être enregistrées en utilisant une structure sont moins importantes que la conception de ce scénario. – core
Ahh, donc vous voulez un type Nullable. Ce chiffre. Le seul problème que j'ai avec votre conception actuelle est le couplage étroit entre lb et kg; Et si, dans le futur, je veux mettre en tonne, tonne, newton, once, gramme, etc? –