您的位置:首页 > 编程语言 > C#

C#类型转换

2012-02-28 16:50 120 查看
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

namespace Test2

{

    class MyConvert

    {

        #region string转

        public static DateTime getDateTime(Object value)

        {

            try

            {

                if (value == null)

                {

                    return DateTime.Parse("0000/00/00 00:00:00");

                }

                switch(value.GetType().ToString())

                {

                    case "System.String":

                            return DateTime.Parse((String)value);

                    case "System.Int64":

                        return MyConvert.getDateTime(MyConvert.getString(value));

                    case "System.Int32":

                        return MyConvert.getDateTime(MyConvert.getString(value));

                    case "System.Boolean":

                        return MyConvert.getDateTime(MyConvert.getString(value));

                    case "System.Double":

                        return MyConvert.getDateTime(MyConvert.getString(value));

                    case "System.IO.MemoryStream":

                        return MyConvert.getDateTime(MyConvert.getString(value));

                    case "System.Byte[]":

                        return MyConvert.getDateTime(MyConvert.getString(value));

                    default:

                        return DateTime.Parse("0000/00/00 00:00:00");

                   

                }

             

            }

            catch(Exception) {

                return DateTime.Parse("0000/00/00 00:00:00");

            }

        }

        //string转换为Int32

        public static int getInt(Object value)

        {

            try

            {

                if (value == null)

                {

                    return 0;

                }

                switch(value.GetType().ToString())

                {

                    case "System.String":

                        return Int32.Parse((string)value);

                    case "System.Int64":

                        return Int32.Parse(((long)value).ToString());

                    case "System.Int32":

                        return (int)value;

                    case "System.Double":

                        return (int)System.Math.Round((double)value, 0);

                    case "System.Boolean":

                        return 0;

                    case "System.DateTime":

                        return 0;

                    case "System.IO.MemoryStream":

                        return MyConvert.getInt(MyConvert.getString(value));

                    case "System.Byte[]":

                        return MyConvert.getInt(MyConvert.getString(value));

                    default:

                        return 0;

                }

            }

            catch{

                return 0;

            }

        }

        //string转换为double

        public static double getDouble(Object value)

        {

            try

            {

               if(value==null)

               {

                   return 0.0;

               }

               switch (value.GetType().ToString())

               {

                   case "System.String":

                       return Double.Parse((string)value);

                   case "System.Int64":

                       return Double.Parse(((long)value).ToString());

                   case "System.Int32":

                       return Double.Parse(((int)value).ToString());

                   case "System.Boolean":

                       return 0.0;

                   case "System.Double":

                       return (int)System.Math.Round((double)value, 0);

                   case "System.DateTime":

                       return 0.0;

                   case "System.IO.MemoryStream":

                       return MyConvert.getInt(MyConvert.getString(value));

                   case "System.Byte[]":

                       return MyConvert.getInt(MyConvert.getString(value));

                   default:

                       return 0;

               }

            }

            catch

            {

                return 0.0;

            }

        }

        public static Stream getStream(Object value)

        {

            try

            {

                if (value == null)

                {

                    return new MemoryStream(Encoding.Default.GetBytes("null"));

                }

                switch (value.GetType().ToString())

                {

                    case "System.String":

                        return new MemoryStream(Encoding.Default.GetBytes((string)value));

                    case "System.Int64":

                        return new MemoryStream(Encoding.Default.GetBytes(MyConvert.getString(value)));

                    case "System.Int32":

                        return new MemoryStream(Encoding.Default.GetBytes(MyConvert.getString(value)));

                    case "System.Boolean":

                        return new MemoryStream(Encoding.Default.GetBytes(MyConvert.getString(value)));

                    case "System.DateTime":

                        return new MemoryStream(Encoding.Default.GetBytes(MyConvert.getString(value)));

                    case "System.Byte[]":

                        return new MemoryStream(Encoding.Default.GetBytes(MyConvert.getString(value)));

                    default:

                        return new MemoryStream(Encoding.Default.GetBytes("null"));

                }

            //    myStream = new MemoryStream(Encoding.Default.GetBytes(myString));

              //  Console.WriteLine(new StreamReader(myStream).ReadToEnd());

               // Console.WriteLine("myStream is " + myStream.Read());

            }

            catch{

                return new MemoryStream(Encoding.Default.GetBytes("null"));

            }

        }

       

         //string转换为byte[]

        public static byte[] getByte(Object value)

        {

            try

            {

                if (value == null)

                {

                    return null;

                }

                switch(value.GetType().ToString())

                {

                    case "System.String":

                        return Encoding.Default.GetBytes((string)value);

                    case "System.Int64":

                        return Encoding.Default.GetBytes(MyConvert.getString(value));

                    case "System.Int32":

                        return Encoding.Default.GetBytes(MyConvert.getString(value));

                    case "System.Boolean":

                        return Encoding.Default.GetBytes(MyConvert.getString(value));

                    case "System.DateTime":

                        return Encoding.Default.GetBytes(MyConvert.getString(value));

                    case "System.IO.MemoryStream":

                        return Encoding.Default.GetBytes(MyConvert.getString(value));

                    default:

                        return null;

               

                }

            }

            catch

            {

                return null;

            }

        }

        #endregion

        /*******************************************

*

*

*

* ****************************************/

        #region 转string

        public static string getString(Object obj)

        {

         

            switch (obj.GetType().ToString())

            {

                case "System.DateTime":

                    Console.WriteLine(((DateTime)obj).ToLongDateString());

                    Console.WriteLine(((DateTime)obj).ToLongDateString().GetType());

                    return ((DateTime)obj).ToLongDateString();

                case "System.Int32":

                    Console.WriteLine(((Int32)obj).ToString());

                    Console.WriteLine(((Int32)obj).ToString().GetType());

                    return ((Int32)obj).ToString();

                case "System.Int64":

                   Console.WriteLine(((Int64)obj).ToString());

                   Console.WriteLine(((Int64)obj).ToString().GetType());

                   return ((Int64)obj).ToString();

                case "System.Double":

                    Console.WriteLine(((double)obj).ToString());

                    Console.WriteLine(((double)obj).ToString().GetType());

                    return ((double)obj).ToString();

                case "System.IO.MemoryStream":

                     Stream s = (Stream)obj;

                     StreamReader sr = new StreamReader(s);

                  string  myString=string.Empty;

                    while(sr.Peek()>-1)

                    {

                        string input = sr.ReadLine();

                        myString += input;

                    }

                     Console.WriteLine(myString);

                    Console.WriteLine(myString.GetType());

                    return myString;

                case "System.Byte[]":

                    return Encoding.UTF8.GetString((byte[])obj);

                case "System.Boolean":

                   if((bool)obj==false)

                       return "false";

                    else return "true";

                default:

                    Console.WriteLine("该格式无法转换");

                    return null;

            }

        }

        #endregion

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息