C# c语言中字符串到数字的转换#
我正在尝试编写一个函数,将C# c语言中字符串到数字的转换#,c#,string,numbers,C#,String,Numbers,我正在尝试编写一个函数,将字符串的内容“12345”转换为int 如果字符串为空,我希望返回null(未初始化),而不是值0 问题是,函数不会返回未初始化的值 我的代码不会编译,因为Retval可能返回未初始化的值 我迄今为止的努力: public int ConvertStringToNumber(String TheString) { // Uninitialized int Retval; if (TheString.Length > 0) {
字符串的内容
“12345”转换为int
如果字符串为空,我希望返回null
(未初始化),而不是值0
问题是,函数不会返回未初始化的值
我的代码不会编译,因为Retval可能返回未初始化的值
我迄今为止的努力:
public int ConvertStringToNumber(String TheString)
{
// Uninitialized
int Retval;
if (TheString.Length > 0)
{
// We have a valid string
if (Int32.TryParse(TheString, out Retval))
{
// We have a valid Number
}
}
// Return the number or null
return Retval;
}
你能用Nullable int吗?它将允许设置为可空。请参见此处:您可以使用Nullable int吗?它将允许设置为可空。请看这里: int值=x.值 c语言中字符串到数字的转换# int值=x.值
在c#中,字符串到数字的转换可以使用可为空的int(详细信息) 可为null的类型可以表示基础类型的所有值,并且 一个附加的空值 注意:当使用可空类型时,需要使用强制转换或获取其值。看 示例:
int? n = ConvertStringToNumber("123");
int value = n.Value;
// or
int value = (int)n;
您可以使用可为null的int(更多信息) 可为null的类型可以表示基础类型的所有值,并且 一个附加的空值 注意:当使用可空类型时,需要使用强制转换或获取其值。看 示例:
int? n = ConvertStringToNumber("123");
int value = n.Value;
// or
int value = (int)n;
解决问题的简单扩展方法
using System;
namespace temp
{
class Program
{
static void Main(string[] args)
{
string valu = "";
Console.WriteLine(valu.ToInt32());
Console.ReadLine();
}
}
public static class MyExtentions
{
public static int ToInt32(this string s)
{
int x;
if (s != null)
{
if (s.Length > 1)
x = Convert.ToInt32(s);
else
x = 0;
}
else
{
x= 0;
}
return x;
}
}
}
解决问题的简单扩展方法
using System;
namespace temp
{
class Program
{
static void Main(string[] args)
{
string valu = "";
Console.WriteLine(valu.ToInt32());
Console.ReadLine();
}
}
public static class MyExtentions
{
public static int ToInt32(this string s)
{
int x;
if (s != null)
{
if (s.Length > 1)
x = Convert.ToInt32(s);
else
x = 0;
}
else
{
x= 0;
}
return x;
}
}
}
由于Int32.TryParse(字符串,out-Retval)
要求int-type不可为null
public int? ConvertStringToNumber(String TheString)
{
// Uninitialized
int Retval;
if (TheString.Length > 0)
{
// We have a valid string
if (Int32.TryParse(TheString, out Retval))
{
// We have a valid Number
return Retval;
}
}
// Return the number or null
return null;
}
由于Int32.TryParse(字符串,out-Retval)
要求int-type不可为null
public int? ConvertStringToNumber(String TheString)
{
// Uninitialized
int Retval;
if (TheString.Length > 0)
{
// We have a valid string
if (Int32.TryParse(TheString, out Retval))
{
// We have a valid Number
return Retval;
}
}
// Return the number or null
return null;
}
如果第一次为Retval对象指定了值,则该值仅在该区域有效。
因此,返回Retval时,该值为null。如果第一次为Retval对象赋值,则该值仅在该区域有效。 因此,Retval在返回时为null