null になる可能性のある object 型のオブジェクトで .ToString() メソッドへの呼び出しをどのように記述しますか。私は現在、次のことを行っていますが、かなり長いです:
myobject == null ? null : myobject.ToString()
動作をよりカプセル化する 1 つの方法は、拡張メソッドに配置することです。
public static class ObjectExtensions
{
public static string NullSafeToString(this object input)
{
return input == null ? null : input.ToString();
}
}
次にNullSafeToString
、任意のオブジェクトを呼び出すことができます。
object myobject = null;
string temp = myobject.NullSafeToString();
このように特定の型を頻繁に使用する場合はGetString(object foo)
、文字列または null を返すメソッドを作成できます。これにより、入力の手間が省けます。C# の C++ テンプレートに似たものはありますか? はいの場合は、それをGetString()
メソッドにも適用できます。
null オブジェクトに null 文字列が必要ですか? 私はこれがより可能性が高いと思います:
myobject == null ? string.Empty : myobject.ToString()
それは直接的に間違っているわけではありませんが、関数が null と Empty を受け入れる必要があるが、できれば null 文字列を返さないというガイドラインを覚えています。