目前,您需要将有效的 int 传递给您的方法。例如,您不能这样称呼它:
getName("", 3);
这会给你一个编译错误,因为第一个参数不是 type int
。
所以你有两个选择:
- 让调用者将用户输入转换为
int
.
- 调整您的方法签名以接受
string
,object
或Nullable<int>
.
Nullable<int>
允许您的方法的调用者通过null
. 您可以使用a.HasValue
来检查用户是否通过null
或有效的int
. (MSDN 文档)
要在 .NET Framework 中转换值,您还有其他三个选项:
int.解析
此方法接受一个字符串参数并尝试将其转换为int
. 如果转换失败或string
is null
,则会引发异常。
int.TryParse
此方法接受一个string
和一个输出参数并尝试转换。如果失败,则不会抛出异常。相反,该方法返回下降,您可以决定要做什么。
转换.ToInt32
此方法采用对象类型的参数。它不会抛出 null,而是返回默认值(对于 int,这是 0)。除此之外,它在内部使用 int.Parse。
在您的情况下,您可以执行以下操作:
public XmlNode getName(string a, double b)
{
if ( string.IsNullOrWhiteSpace(a))
{
// Handle null case
}
int result;
if (!int.TryParse(a, out result)
{
// handle invalid int case
}
// Use result to get your XmlNode
}