現在、私はいくつかのクラスのシリアライザを作成しています。 私は時々私はnull
値に対処する必要が、さらに次のシグネチャC#オーバーロード:null値のメソッド
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);
での静的メソッドのセットを作成しました。 私は以下のように署名、すなわち、特別な方法でそれらを扱うしたいと思います:関数の呼び出しのようなものでなければなりません
public static string serialize(null val);
:
string s = serialize(someVariableThatMightBeNull);
そして、それはいつでもserialize
が呼び出されたトリガされなければなりません値がnull
で、変数が宣言された型とは無関係です。
これをC#で実装する方法はありますか?
現在、私の唯一の解決策は、各メソッドに次の行を追加することです: (nullもできるデータ型のために):私は約30の異なるケースを持っているよう
if(val == null){ dealWithNull(); }
このソリューションは、少し退屈そうですし、私はディスパッチメソッドを持っていないことを好むだろう。例として
、XTENDはまた、null値をチェックVoid
タイプを提供dispatch methods
を特徴とします。 Xtend Dispatch Methods
null値では、参照が 'null'のオブジェクトを意味しますか?またはパラメータの不在? – Sidewinder94
コールを明確にするための情報を追加しました – stklik
'serialize(オブジェクト値)' – pm100