如题

解决方案 »

  1.   

    string s = string.Empty;int?i = s as int?;
      

  2.   

    C# 类型转换三种方式第一种:(int)string
    第二种:Covnert.ToString(int)
    第三种:int.Parse(string)
      

  3.   

    第二种写反了:Convert.ToInt32(string)
      

  4.   

            /// <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;
                }
            }
      

  5.   

    楼主要的是引用类型的整型,应该是要这样的效果吧,测试数据都给好了: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
      

  6.   

     int ? i = int.Parse("21");
      

  7.   

            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;
                }
            }
      

  8.   

    string str = "5";
    int? v = int.Parse(str);
      

  9.   

    int.Parse(string) 
    或者 Convert.ToInt32(string)