Je suis actuellement en train d'écrire un sérialiseur pour certaines de mes classes. J'ai créé un ensemble de méthodes statiques avec les signatures suivantes
public static string serialize(int val);
public static string serialize(string val);
public static string serialize(float val);
public static string serialize(MyOwnClass val);
public static string serialize(AnotherClass val);
public static string serialize(SomethingElse val);
De plus, parfois je dois traiter des valeurs null
. J'aimerais les traiter de manière spéciale, c'est-à-dire avec une signature telle que:
public static string serialize(null val);
L'appel à la fonction devrait ressembler à :
string s = serialize(someVariableThatMightBeNull);
Et cela devrait être déclenché à chaque fois que serialize
est appelé avec la valeur null
, indépendamment du type avec lequel la variable a été déclarée.
Y a-t-il un moyen d'implémenter cela en C#?
Actuellement, ma seule solution serait d'ajouter cette ligne à chaque méthode : (pour les types de données qui peuvent être null) :
if(val == null){ dealWithNull(); }
Cette solution semble un peu fastidieuse, car j'ai environ 30 cas différents et je préférerais ne pas avoir une méthode de répartition.
À titre d'exemple, Xtend propose des méthodes de répartition
qui offrent également le type Void
qui vérifie les valeurs null. Xtend Dispatch Methods