c#类型转换

2019-08-26  本文已影响0人  朵耳

一:string转int

//两种转换方式
//如果字符串不是有效数值,则会抛出异常
int.Parse("Hello"); // 抛出异常
var i = int.Parse("1"); // 正常

var i = Convert.ToInt32((string) null); //无异常,返回: 0
Convert.ToInt32("hello"); //抛出异常
Convert.ToInt32("1"); //正常 

解决办法:封装一个工具类ParseInteger,让异常数据返回0

public static class ParseInteger
{
    /// <summary>
    /// 字符串转int
    /// </summary>
    /// <param name="intStr">要进行转换的字符串</param>
    /// <param name="defaultValue">默认值,默认:0</param>
    /// <returns></returns>
    public static int ParseInt(string intStr, int defaultValue = 0)
    {
        int parseInt;
        if (int.TryParse(intStr, out parseInt))
            return parseInt;
        return defaultValue;
    }
}

转自:https://www.cnblogs.com/geekworld/p/9430133.html

二:Hex16Byte 转 Hex16String

        /// <summary>
        /// 此方法用于将16进制的字节数组转换成16进制的字符串。
        /// </summary>
        /// <param name="_hex16Byte">要转换的16进制的字节数组。</param>
        /// <returns></returns>
        public static string Hex16ByteToHex16String(byte[] _hex16Byte)
        {
            string result = string.Empty;
            //如果字节数组不为空。
            if (_hex16Byte != null)
            {
                for (int i = 0; i < _hex16Byte.Length; i++)
                {
                    //将每一个字节数组转换成16进制string类型的字符串,用空格分隔开。
                    result += _hex16Byte[i].ToString("X2") + " ";
                }
            }
            return result;
        }

三:Hex16String 转 String

        /// <summary>
        /// 此方法用于将16进制的字符串转换成普通字符串。
        /// </summary>
        /// <param name="_hex16String">要转换的16进制的字符串。</param>
        /// <returns></returns>
        private static string Hex16StringToString(string _hex16String)
        {
            string result = string.Empty;
            //以空格分割字符串。
            string[] chars = _hex16String.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            //声明一个字节数组,其长度等于分割的字符串的长度。
            byte[] buffer = new byte[chars.Length];
            for (int i = 0; i < buffer.Length; i++)
            {
                //将chars数组中的元素转换成字节数组。
                buffer[i] = Convert.ToByte(chars[i], 16);
            }
            //将字节数组转换成字符串。
            result = System.Text.Encoding.UTF8.GetString(buffer);
            //返回。
            return result;
        }
上一篇 下一篇

猜你喜欢

热点阅读