C#类型转换问题 string怎么转换 int?(Nulllabel<int>) 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 string s = string.Empty;int?i = s as int?; C# 类型转换三种方式第一种:(int)string第二种:Covnert.ToString(int)第三种:int.Parse(string) 第二种写反了:Convert.ToInt32(string) /// <summary> /// 将字符串string转换为整型int /// </summary> /// <param name="str">需要转换的字串</param> /// <returns>成功返回转换后的结果,失败返回0</returns> static public int StringToInt(string str) { if (string.IsNullOrEmpty(str)) return 0; else { int i; if (int.TryParse(str, out i)) return i; else return 0; } } 楼主要的是引用类型的整型,应该是要这样的效果吧,测试数据都给好了:using System;public static class Program{ public static void Main() { string str = null;// null Nullable<int> intStr = str.ToNullableInteger(); string str1 = string.Empty;// 空字符串 Nullable<int> intStr1 = str1.ToNullableInteger(); string str2 = " ";// 空格字符串 Nullable<int> intStr2 = str2.ToNullableInteger(); string str3 = "abc";// 非数字 Nullable<int> intStr3 = str3.ToNullableInteger(); string str4 = "3434";// 符合的数字 Nullable<int> intStr4 = str4.ToNullableInteger(); string str5 = "3432353745348583068506835083405304853454";// 超出范围的数字 Nullable<int> intStr5 = str5.ToNullableInteger(); Console.WriteLine("intStr:{0}", intStr.HasValue ? intStr.Value.ToString() : "null"); Console.WriteLine("intStr1:{0}", intStr1.HasValue ? intStr1.Value.ToString() : "null"); Console.WriteLine("intStr2:{0}", intStr2.HasValue ? intStr2.Value.ToString() : "null"); Console.WriteLine("intStr3:{0}", intStr3.HasValue ? intStr3.Value.ToString() : "null"); Console.WriteLine("intStr4:{0}", intStr4.HasValue ? intStr4.Value.ToString() : "null"); Console.WriteLine("intStr5:{0}", intStr5.HasValue ? intStr5.Value.ToString() : "null"); Console.ReadKey(); } /// <summary> /// 扩展方法,将字符串转化为可以为null的整型 /// </summary> /// <param name="str">要转化的字符串</param> /// <returns>可以为null的整型</returns> public static Nullable<int> ToNullableInteger(this string str) { if (!string.IsNullOrWhiteSpace(str)) { System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"^\d+$");// 匹配数字正则表达式 if (regex.IsMatch(str)) { int integer; if (int.TryParse(str, out integer))// 尝试转换,防止超出范围 return new Nullable<int>(integer);// 转换成功,则将值赋给Nullable<int>构造方法 } } return null;// 其余一切情况均返回null }}// 输出结果// intStr:null// intStr1:null// intStr2:null// intStr3:3434// intStr4:null int ? i = int.Parse("21"); public int ConvertToInt(object value) { if (value == DBNull.Value || value == null || string.IsNullOrEmpty(value.ToString())) { return int.MinValue; } if (Convert.ToInt32(value) == -1) { return int.MinValue; } try { return Convert.ToInt32(value); } catch { return int.MinValue; } } string str = "5";int? v = int.Parse(str); int.Parse(string) 或者 Convert.ToInt32(string) asp.net+javascript视频圈套视频教程,欢迎大家下载学习 msdn不能用是什么原因 Socket向Pos机回发中文时出现的乱码问题,C#Winform编程环境 linq 查询语句 有没有做过视屏监控控制端的大大? 下面这段代码什么意思啊? 有没有c#操作oracle的资料啊 一个checkboxlist的问题 请问怎么取到服务器的IP地址 DataGrid与textbox数据绑定同步的问题? PDA上安装程序出错求助大神 检测驱动加载问题
第二种:Covnert.ToString(int)
第三种:int.Parse(string)
/// 将字符串string转换为整型int
/// </summary>
/// <param name="str">需要转换的字串</param>
/// <returns>成功返回转换后的结果,失败返回0</returns>
static public int StringToInt(string str)
{
if (string.IsNullOrEmpty(str))
return 0;
else
{
int i;
if (int.TryParse(str, out i))
return i;
else
return 0;
}
}
{
public static void Main()
{
string str = null;// null
Nullable<int> intStr = str.ToNullableInteger();
string str1 = string.Empty;// 空字符串
Nullable<int> intStr1 = str1.ToNullableInteger();
string str2 = " ";// 空格字符串
Nullable<int> intStr2 = str2.ToNullableInteger();
string str3 = "abc";// 非数字
Nullable<int> intStr3 = str3.ToNullableInteger();
string str4 = "3434";// 符合的数字
Nullable<int> intStr4 = str4.ToNullableInteger();
string str5 = "3432353745348583068506835083405304853454";// 超出范围的数字
Nullable<int> intStr5 = str5.ToNullableInteger(); Console.WriteLine("intStr:{0}", intStr.HasValue ? intStr.Value.ToString() : "null");
Console.WriteLine("intStr1:{0}", intStr1.HasValue ? intStr1.Value.ToString() : "null");
Console.WriteLine("intStr2:{0}", intStr2.HasValue ? intStr2.Value.ToString() : "null");
Console.WriteLine("intStr3:{0}", intStr3.HasValue ? intStr3.Value.ToString() : "null");
Console.WriteLine("intStr4:{0}", intStr4.HasValue ? intStr4.Value.ToString() : "null");
Console.WriteLine("intStr5:{0}", intStr5.HasValue ? intStr5.Value.ToString() : "null");
Console.ReadKey();
} /// <summary>
/// 扩展方法,将字符串转化为可以为null的整型
/// </summary>
/// <param name="str">要转化的字符串</param>
/// <returns>可以为null的整型</returns>
public static Nullable<int> ToNullableInteger(this string str)
{
if (!string.IsNullOrWhiteSpace(str))
{
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"^\d+$");// 匹配数字正则表达式
if (regex.IsMatch(str))
{
int integer;
if (int.TryParse(str, out integer))// 尝试转换,防止超出范围
return new Nullable<int>(integer);// 转换成功,则将值赋给Nullable<int>构造方法
}
}
return null;// 其余一切情况均返回null
}
}
// 输出结果
// intStr:null
// intStr1:null
// intStr2:null
// intStr3:3434
// intStr4:null
{
if (value == DBNull.Value || value == null || string.IsNullOrEmpty(value.ToString()))
{
return int.MinValue;
} if (Convert.ToInt32(value) == -1)
{
return int.MinValue;
} try
{
return Convert.ToInt32(value);
}
catch
{
return int.MinValue;
}
}
int? v = int.Parse(str);
或者 Convert.ToInt32(string)