我想添加一个扩展方法为int,称为TryParseNull,它接受一个字符串作为输入,并返回转换的整数,如果成功或null,如果字符串不是一个有效的整数。不能将TryParseNull扩展方法添加到int在C#
我跟着这个职位的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