当前位置:编程学习 > C#/ASP.NET >>

C#类型转换问题 string怎么转换 int?(Nulllabel<int>)

如题 --------------------编程问答-------------------- 用System.Convert --------------------编程问答--------------------
引用 1 楼  的回复:
用System.Convert

没有用 --------------------编程问答-------------------- string s = string.Empty;

int?i = s as int?; --------------------编程问答-------------------- 不是CONVERT.TOINT32么 --------------------编程问答-------------------- Convert --------------------编程问答--------------------

Convert.ToInt32();
--------------------编程问答-------------------- Convert.int32("123") --------------------编程问答-------------------- 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;
            }
        } --------------------编程问答-------------------- Convert.ToInt32();
--------------------编程问答--------------------
string str = "5";
int? v = int.Parse(str);
--------------------编程问答-------------------- int.Parse(string) 
或者 Convert.ToInt32(string) 
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,