文字列を入力として受け取り、文字列が有効な整数でない場合は変換された整数を返すTryParseNullという拡張メソッドをintに追加しようとしています。TryParseNull拡張メソッドをC#のintに追加できません
私はこのポストからdoubleMeの例を踏襲:using extension methods on int
私の拡張メソッドは次のように宣言されています:
public static class IntExtensions {
public static int? TryParseNull(this string s) {
int dummy;
int? value;
if (int.TryParse(s, out dummy)) {
value = dummy;
}
else {
value = null;
}
return value;
}
}
しかし、私はこのようにそれを使用しようとすると、コンパイラは、それがないと文句を言いTryParseNullが何であるかを知る。私は以下の両方を試しました。
int? myNum = int?.TryParseNull("1");
int? myNum = int.TryParseNull("1");
編集:私は問題がパラメータthis string s
だと思うが、私はそれを修正するかどうかはわかりませんので、私は、文字列で渡しています。
編集2:以下の回答から問題の内容を確認できますが、構文がある方法はありますかint.TryParseNull("1")
?
'' 1 '.TryParseNull() ' –
制御しない型に静的メソッドを追加することはできません。 – Will