四联光电智能照明论坛

标题: 走进c#(类型转换的一个类Object对象转int String double byte[] Stream) [打印本页]

作者: admin    时间: 2016-10-7 20:15
标题: 走进c#(类型转换的一个类Object对象转int String double byte[] Stream)
转自:http://www.cnblogs.com/dengw009/archive/2011/07/22/2114258.html

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using System.IO;  
  6.   
  7. namespace Test2  
  8. {  
  9.     class MyConvert  
  10.     {  
  11.         #region string转  
  12.   
  13.   
  14.         public static DateTime getDateTime(Object value)  
  15.         {  
  16.             try  
  17.             {  
  18.                 if (value == null)  
  19.                 {  
  20.                     return DateTime.Parse("0000/00/00 00:00:00");  
  21.                 }  
  22.                 switch(value.GetType().ToString())  
  23.                 {  
  24.                     case "System.String":  
  25.                             return DateTime.Parse((String)value);  
  26.                     case "System.Int64":  
  27.                         return MyConvert.getDateTime(MyConvert.getString(value));  
  28.                     case "System.Int32":  
  29.                         return MyConvert.getDateTime(MyConvert.getString(value));  
  30.                     case "System.Boolean":  
  31.                         return MyConvert.getDateTime(MyConvert.getString(value));  
  32.                     case "System.Double":  
  33.                         return MyConvert.getDateTime(MyConvert.getString(value));  
  34.                     case "System.IO.MemoryStream":  
  35.                         return MyConvert.getDateTime(MyConvert.getString(value));  
  36.                     case "System.Byte[]":  
  37.                         return MyConvert.getDateTime(MyConvert.getString(value));  
  38.                     default:  
  39.                         return DateTime.Parse("0000/00/00 00:00:00");  
  40.                      
  41.                 }  
  42.                
  43.             }  
  44.             catch(Exception) {  
  45.                 return DateTime.Parse("0000/00/00 00:00:00");  
  46.             }  
  47.         }  
  48.   
  49.         //string转换为Int32  
  50.         public static int getInt(Object value)  
  51.         {  
  52.             try  
  53.             {  
  54.                 if (value == null)  
  55.                 {  
  56.                     return 0;  
  57.                 }  
  58.                 switch(value.GetType().ToString())  
  59.                 {  
  60.                     case "System.String":  
  61.                         return Int32.Parse((string)value);  
  62.                     case "System.Int64":  
  63.                         return Int32.Parse(((long)value).ToString());  
  64.                     case "System.Int32":  
  65.                         return (int)value;  
  66.                     case "System.Double":  
  67.                         return (int)System.Math.Round((double)value, 0);  
  68.                     case "System.Boolean":  
  69.                         return 0;  
  70.                     case "System.DateTime":  
  71.                         return 0;  
  72.                     case "System.IO.MemoryStream":  
  73.                         return MyConvert.getInt(MyConvert.getString(value));  
  74.                     case "System.Byte[]":  
  75.                         return MyConvert.getInt(MyConvert.getString(value));  
  76.                     default:  
  77.                         return 0;  
  78.                 }  
  79.             }  
  80.             catch{  
  81.                 return 0;  
  82.             }  
  83.         }  
  84.   
  85.         //string转换为double  
  86.         public static double getDouble(Object value)  
  87.         {  
  88.             try  
  89.             {  
  90.                if(value==null)  
  91.                {  
  92.                    return 0.0;  
  93.                }  
  94.                switch (value.GetType().ToString())   
  95.                {  
  96.                    case "System.String":  
  97.                        return Double.Parse((string)value);  
  98.                    case "System.Int64":  
  99.                        return Double.Parse(((long)value).ToString());  
  100.                    case "System.Int32":  
  101.                        return Double.Parse(((int)value).ToString());  
  102.                    case "System.Boolean":  
  103.                        return 0.0;  
  104.                    case "System.Double":  
  105.                        return (int)System.Math.Round((double)value, 0);  
  106.                    case "System.DateTime":  
  107.                        return 0.0;  
  108.                    case "System.IO.MemoryStream":  
  109.                        return MyConvert.getInt(MyConvert.getString(value));  
  110.                    case "System.Byte[]":  
  111.                        return MyConvert.getInt(MyConvert.getString(value));  
  112.                    default:  
  113.                        return 0;  
  114.                }  
  115.             }  
  116.             catch  
  117.             {  
  118.                 return 0.0;  
  119.             }  
  120.         }  
  121.   
  122.         public static Stream getStream(Object value)  
  123.         {  
  124.             try  
  125.             {  
  126.                 if (value == null)  
  127.                 {  
  128.                     return new MemoryStream(Encoding.Default.GetBytes("null"));  
  129.                 }  
  130.                 switch (value.GetType().ToString())   
  131.                 {  
  132.                     case "System.String":  
  133.                         return new MemoryStream(Encoding.Default.GetBytes((string)value));  
  134.                     case "System.Int64":  
  135.                         return new MemoryStream(Encoding.Default.GetBytes(MyConvert.getString(value)));  
  136.                     case "System.Int32":  
  137.                         return new MemoryStream(Encoding.Default.GetBytes(MyConvert.getString(value)));  
  138.                     case "System.Boolean":  
  139.                         return new MemoryStream(Encoding.Default.GetBytes(MyConvert.getString(value)));  
  140.                     case "System.DateTime":  
  141.                         return new MemoryStream(Encoding.Default.GetBytes(MyConvert.getString(value)));  
  142.                     case "System.Byte[]":  
  143.                         return new MemoryStream(Encoding.Default.GetBytes(MyConvert.getString(value)));  
  144.                     default:  
  145.                         return new MemoryStream(Encoding.Default.GetBytes("null"));  
  146.                 }  
  147.             //    myStream = new MemoryStream(Encoding.Default.GetBytes(myString));  
  148.               //  Console.WriteLine(new StreamReader(myStream).ReadToEnd());  
  149.                // Console.WriteLine("myStream is " + myStream.Read());  
  150.             }  
  151.             catch{  
  152.                 return new MemoryStream(Encoding.Default.GetBytes("null"));  
  153.             }  
  154.         }  
  155.   
  156.          
  157.          //string转换为byte[]  
  158.         public static byte[] getByte(Object value)  
  159.         {  
  160.             try  
  161.             {  
  162.                 if (value == null)   
  163.                 {  
  164.                     return null;  
  165.                 }  
  166.                 switch(value.GetType().ToString())  
  167.                 {  
  168.                     case "System.String":  
  169.                         return Encoding.Default.GetBytes((string)value);  
  170.                     case "System.Int64":  
  171.                         return Encoding.Default.GetBytes(MyConvert.getString(value));  
  172.                     case "System.Int32":  
  173.                         return Encoding.Default.GetBytes(MyConvert.getString(value));  
  174.                     case "System.Boolean":  
  175.                         return Encoding.Default.GetBytes(MyConvert.getString(value));  
  176.                     case "System.DateTime":  
  177.                         return Encoding.Default.GetBytes(MyConvert.getString(value));  
  178.                     case "System.IO.MemoryStream":  
  179.                         return Encoding.Default.GetBytes(MyConvert.getString(value));  
  180.                     default:  
  181.                         return null;  
  182.                   
  183.                 }  
  184.             }  
  185.             catch  
  186.             {  
  187.                 return null;  
  188.             }  
  189.         }  
  190.         #endregion  
  191.         /*******************************************
  192. *  
  193. *
  194. *  
  195. * ****************************************/  
  196.         #region 转string  
  197.         public static string getString(Object obj)   
  198.         {  
  199.             
  200.             switch (obj.GetType().ToString())  
  201.             {   
  202.                 case "System.DateTime":  
  203.                     Console.WriteLine(((DateTime)obj).ToLongDateString());  
  204.                     Console.WriteLine(((DateTime)obj).ToLongDateString().GetType());  
  205.                     return ((DateTime)obj).ToLongDateString();  
  206.                 case "System.Int32":  
  207.                     Console.WriteLine(((Int32)obj).ToString());  
  208.                     Console.WriteLine(((Int32)obj).ToString().GetType());  
  209.                     return ((Int32)obj).ToString();  
  210.                 case "System.Int64":  
  211.                    Console.WriteLine(((Int64)obj).ToString());  
  212.                    Console.WriteLine(((Int64)obj).ToString().GetType());  
  213.                    return ((Int64)obj).ToString();  
  214.                 case "System.Double":  
  215.                     Console.WriteLine(((double)obj).ToString());  
  216.                     Console.WriteLine(((double)obj).ToString().GetType());  
  217.                     return ((double)obj).ToString();  
  218.                 case "System.IO.MemoryStream":  
  219.                      Stream s = (Stream)obj;  
  220.                      StreamReader sr = new StreamReader(s);  
  221.                   string  myString=string.Empty;  
  222.                     while(sr.Peek()>-1)  
  223.                     {  
  224.                         string input = sr.ReadLine();  
  225.                         myString += input;  
  226.                     }  
  227.                      Console.WriteLine(myString);  
  228.                     Console.WriteLine(myString.GetType());  
  229.                     return myString;  
  230.                 case "System.Byte[]":  
  231.                     return Encoding.UTF8.GetString((byte[])obj);  
  232.                 case "System.Boolean":  
  233.                    if((bool)obj==false)  
  234.                        return "false";  
  235.                     else return "true";  
  236.                 default:  
  237.                     Console.WriteLine("该格式无法转换");  
  238.                     return null;  
  239.             }  
  240.         }  
  241.         #endregion  
  242.     }  
  243. }  
复制代码





欢迎光临 四联光电智能照明论坛 (http://5xhome.com/) Powered by Discuz! X3.2