四联光电智能照明论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2451|回复: 0
打印 上一主题 下一主题

走进c#(类型转换的一个类Object对象转int String double byte[] Stream)

[复制链接]
  • TA的每日心情
    开心
    2018-12-28 16:25
  • 817

    主题

    1556

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    14941
    跳转到指定楼层
    楼主
    发表于 2016-10-7 20:15:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    转自: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. }  
    复制代码
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Silian Lighting+ ( 蜀ICP备14004521号-1 )

    GMT+8, 2024-5-6 07:43 , Processed in 1.078125 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表