パブリック 静的 クラスStringExtensions { プライベート デリゲート BOOL TypeParseDelegate <T>(ストリング S、アウトT結果)。 プライベート 静的 T <T>へ(文字列値、TypeParseDelegate <T>パース、T DEF = デフォルト){ 戻りパース(値?.Trim()、アウト VaRの結果)?結果:DEF。 } プライベート 静的 T?ToNullable <T>(文字列値、TypeParseDelegate <T>解析)T:構造体{ T?RET = デフォルト; もし(?解析(値.Trim()、アウト VaRの結果)){ RET = 結果。 } 戻りRET。 } パブリック 静的 INT ToInt32(この 文字列値、INT DEF = デフォルト)=>(値にINT .TryParse、DEF)。 公共の 静的な フロート ToFloat(この 文字列値は、フロート DEF = デフォルト(値に)=> フロート.TryParse、DEF)。 パブリック 静的 小数点 ToDecimal(この 文字列値は、小数 DEF = デフォルト)=>(値に小数.TryParse、DEF); 公共の 静的のGuid ToGuid(この 文字列値は、GUIDはDEF = デフォルト)=> (DEF値、Guid.TryParse、)へ。 公共の 静的な int型?ToInt32Nullable(この 文字列値)=> ToNullable < 整数 >(値、INT .TryParse)。 公共の 静的な フロート?ToFloatNullable(この 文字列値)=> ToNullable < フロート >(値、フロート.TryParse)を、 公共の 静的 小数点?ToDecimalNullable(この 文字列値)=> ToNullable < 小数 >(値、小数.TryParse)。 公共の 静的のGuid?ToGuidNullable(この 文字列値)=> ToNullable <GUID> (値、Guid.TryParse)。 公共の 静的な日時?ToDatetimeNullable(この 文字列値、文字列のfmt = " YYYY-MM-DD" ){ 場合(DateTime.TryParseExact(値.Trim()、FMT、CultureInfo.CurrentCulture、DateTimeStyles.None、?アウト するvar D)){ リターンD; } そうでなければ{ 戻り NULL ; } } }