オブジェクトをnull許容intに変換する関数があります:
public int? ToInt(object x) { ... }
ここで、変換が不可能な場合に null ではなく 0 を返す別の関数が必要です。
public int ToIntSomeOtherName(object x) { ... }
その他の関数の良い名前は何でしょうか? これは些細なことのように思えますが、これらの関数を多くの場所で使用するので、適切な命名規則があれば大きなプラスになります。
オブジェクトをnull許容intに変換する関数があります:
public int? ToInt(object x) { ... }
ここで、変換が不可能な場合に null ではなく 0 を返す別の関数が必要です。
public int ToIntSomeOtherName(object x) { ... }
その他の関数の良い名前は何でしょうか? これは些細なことのように思えますが、これらの関数を多くの場所で使用するので、適切な命名規則があれば大きなプラスになります。
私ToInt
はあなたの2番目の方法の方が良いと思います:
public int ToInt(object x) { ... }
そして、最初のものの名前を変更できます:
public int? ToIntOrNull(object x) { ... }
ToIntOrDefault はどうですか?
これは、IEnumerable インターフェイス (FirstOrDefault) で使用される規則です。
かなり恣意的ですが、整数である必要がある場合はToIntを使用し、nullになる可能性がある場合はAsIntを使用します。これは、言語での「as」キーワードの使用と類似しています。また、これらのメソッドを「オブジェクト」の拡張メソッドにして、型とnullの事前チェックを削除します。また、構文解析ロジックを二重にしないように、AsIntを活用するToIntをお勧めします。
メソッドの名前は、何よりもまず、あなた (およびあなたの会社またはチーム) が認識して理解できるものにする必要があります。
ただし、名前が扱いにくくなる場合があります。XML アノテーションを使用して、メソッドの動作を適切にドキュメント化することを強くお勧めします。
/// <summary>
/// Converts an object to an int.
/// If conversion is not possible, a default int value of 0 is returned.
/// </summary>
/// <param name="x">Object to convert to int.</param>
public int ToInt_NotNull(object x) { ... }
多分ToZeroForNull
あなたのメソッドの名前かもしれません。
DefaultOrValue はどうですか、これは String.IsNullOrEmpty の同等の名前のようになります
public int DefaultOrValue(object x)
{
int? intconverted = ToInt(x);
return intconverted.HasValue ? intconverted.Value : 0;
}