C #: Come funziona: Unit myUnit = 5;
-
03-07-2019 - |
Domanda
Ho appena notato che puoi farlo in C #:
Unit myUnit = 5;
invece di dover fare questo:
Unit myUnit = new Unit(5);
Qualcuno sa come posso raggiungere questo obiettivo con le mie strutture? Ho dato un'occhiata all'unità Struct con reflector e ho notato che veniva utilizzato l'attributo TypeConverter, ma dopo aver creato un TypeConverter personalizzato per la mia struttura non riuscivo ancora a ottenere il compilatore per consentire questa sintassi conveniente.
Soluzione
Devi fornire un operatore di conversione implicito da int a Unit, in questo modo:
public struct Unit
{ // the conversion operator...
public static implicit operator Unit(int value)
{
return new Unit(value);
}
// the boring stuff...
private readonly int value;
public int Value { get { return value; } }
public Unit(int value) { this.value = value; }
}
Altri suggerimenti
Devi fornire un operatore cast per la classe che accetta un Int32.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow