以下のメソッドを使用して、さまざまな Type クラスの TryParse() メソッドへの迅速なインライン アクセスを提供しています。基本的に、可能であれば Web サービスからの文字列を解析したり、そうでない場合はデフォルト値を返したりしたいと考えています。
private Int64 Int64Parse(string value) {
Int64 result;
if (!Int64.TryParse(value, out result)) { return default(Int64); }
return result;
}
private DateTime DateTimeParse(string value) {
DateTime result;
if (!DateTime.TryParse(value, out result)) { return default(DateTime); }
return result;
}
private Decimal DecimalParse(string value) {
Decimal result;
if (!Decimal.TryParse(value, out result)) { return default(Decimal); }
return result;
}
これらは非常に反復的であり、単一の汎用メソッドにラップする方法があるかもしれないことを示唆しています。
私は次のことで行き詰まっていますが、続行する方法や続行する方法を検索する方法がわかりません。
private T ParseString<T>(string value) {
T result;
if (!T.TryParse(value, out result)) { return default(T); }
return result;
}
どんな助けでも大歓迎です。ありがとう。
==編集== いくつかのコンテキストを追加します。これは、特定のクレジット カード請求会社からポストバックを受け取るリスナー用です。このステップでは検証を行いません。これは、後のビジネス ルールのステップで行われるためです。たとえば、bank_batch_number が int、文字列、または凍結乾燥した齧歯動物のいずれであるかは気にしません。使用していないフィールドをきれいにログに記録できない場合でも、例外で停止するつもりはありません。DB に ext_product_id が存在し、メッセージ内の currency_amount_settled と一致する価格を持っていることは気にしています。そのテストが失敗した場合、トランザクションは保留され、警告がログに記録され、CS スタッフと私に警告が送られます。
ただし、以下で言及されている文化のことは賢明なアドバイスです。