其他类型的 TryParse
TryParse for other types
我想做一个方法int.TryParse(string, out int number),但是如果不能解析,数字应该是null而不是0。
我看过其他一些解决方案,但其中 none 似乎实际上允许定义条目类型。
基本上我要问的是:
How can I change the "int" in int.TryParse to something else, e.g.
int?.TryParse
public static bool TryParse(this int? i, string input, out int? output)
{
var IsNumber = int.TryParse(input, out int result);
if (!IsNumber)
output = null;
else
output = result;
return IsNumber;
}
这就是我目前的情况,但现在我必须创建一个 int 对象?为了使用它而不是仅仅能够直接在 int 上使用它?类型。
我有:
var _string = Console.ReadLine();
int? nInt = null;
var IsNumber = nInt.TryParse(_string, out int? result);
我想要的:
var _string = Console.ReadLine();
var IsNumber = int?.TryParse(_string, out int? result);
我检查的东西:
Convert string to nullable type (int, double, etc...)
TryParse Nullable types generically
伪答案:
public class Int
{
public static bool TryParse(string input, out int? output)
{
var IsNumber = int.TryParse(input, out int result);
if (!IsNumber)
output = null;
else
output = result;
return IsNumber;
}
}
然后可以用作
var IsNumber = Int.TryParse(_input, out int? result);
返回一个布尔值和一个值为 int 或 null 的实例 'result'。
您不能在此处重载 Nullable<T>
结构,其中 T
在 int
中。因此,您必须解决另一种方法才能调用该方法。
你似乎想在 int?
上做一个扩展方法,实际上它应该在 string
上,然后你必须使用一个字符串实例来调用它:
public static bool TryParse(this string input, out int? output)
{
var IsNumber = int.TryParse(input, out int result);
if (!IsNumber)
output = null;
else
output = result;
return IsNumber;
}
称之为:
yourStringInstance.TryParse(out int? result);
我想做一个方法int.TryParse(string, out int number),但是如果不能解析,数字应该是null而不是0。
我看过其他一些解决方案,但其中 none 似乎实际上允许定义条目类型。
基本上我要问的是:
How can I change the "int" in int.TryParse to something else, e.g. int?.TryParse
public static bool TryParse(this int? i, string input, out int? output)
{
var IsNumber = int.TryParse(input, out int result);
if (!IsNumber)
output = null;
else
output = result;
return IsNumber;
}
这就是我目前的情况,但现在我必须创建一个 int 对象?为了使用它而不是仅仅能够直接在 int 上使用它?类型。
我有:
var _string = Console.ReadLine();
int? nInt = null;
var IsNumber = nInt.TryParse(_string, out int? result);
我想要的:
var _string = Console.ReadLine();
var IsNumber = int?.TryParse(_string, out int? result);
我检查的东西:
Convert string to nullable type (int, double, etc...)
TryParse Nullable types generically
伪答案:
public class Int
{
public static bool TryParse(string input, out int? output)
{
var IsNumber = int.TryParse(input, out int result);
if (!IsNumber)
output = null;
else
output = result;
return IsNumber;
}
}
然后可以用作
var IsNumber = Int.TryParse(_input, out int? result);
返回一个布尔值和一个值为 int 或 null 的实例 'result'。
您不能在此处重载 Nullable<T>
结构,其中 T
在 int
中。因此,您必须解决另一种方法才能调用该方法。
你似乎想在 int?
上做一个扩展方法,实际上它应该在 string
上,然后你必须使用一个字符串实例来调用它:
public static bool TryParse(this string input, out int? output)
{
var IsNumber = int.TryParse(input, out int result);
if (!IsNumber)
output = null;
else
output = result;
return IsNumber;
}
称之为:
yourStringInstance.TryParse(out int? result);