1、将任意类型转化成字符串类型
ToString();
2、将字符串类型转换成任意类型
Parse()或者TryParse(),重点说一下TryParse(),先看实例,了解TryParse()的用法
//使用TryParse()进行类型转换 string tryStr = "10aa"; int result; bool b = int.TryParse(tryStr, out result); if (b) { Console.WriteLine("类型转换成功"); Console.WriteLine(result); } else { Console.WriteLine("转换失败"); Console.WriteLine(result); } Console.ReadKey();
转换失败
0
如果这个地方用Parse()代替,如实例:
string Str = "10aa"; Console.WriteLine(int.Parse(Str));//如果不能转换则会报错通过编译,代码会报错,通过比较,我们很清楚的看出,TryParse()比Parse()有明显的优势,在转换是否成功时,做出不一样的处理。
补充:将字符串类型转换成枚举类型
我们先声明一个枚举类型
//不是继承了byte类型,而是限制枚举的值属于byte的范围 public enum UserState : byte { Qme, Online = 253, Hide, Busy }接下看字符串"Qme"是怎么转换成枚举的:
//先说明一下GetType()与typeof()的区别。假如 //Int32 i = new Int32(); //i.GetType()返回值是Int32的类型,但是无法使用typeof(i),因为i是一个变量, //如果要使用typeof(),则只能:typeof(Int32),返回的同样是Int32的类型。 //将字符串类型转化成枚举类型。 string qme = "Qme"; UserState state = (UserState)Enum.Parse(typeof(UserState), qme); Console.WriteLine((int)state); Console.ReadKey();返回值为0
3、将任意类型转化成任意类型
Convert();
4、类与类之间转换
#region 类型转换一(用一对()实现转换) Person p = new Chinese(); p.Name = "Lrh"; if (p is Chinese) //判断一个对象是否属于某个类型 { Chinese chin = (Chinese)p; Console.WriteLine(chin.Name); } else { Console.WriteLine("强制类型转换失败"); } Console.ReadKey(); #endregion
#region 类型转换二(用as实现转换) Person p = new Person(); //此种转换写法会异常 //Chinese ch = (Chinese)p; //用as进行转换时,如果转换失败也不会报异常,只是会返回Null Chinese ch = p as Chinese;//推荐使用as类型转换 Console.WriteLine(ch.China); Console.ReadKey(); #endregion
5、隐式类型转换与显示类型转换(简单实例)
Chinese ch = new Chinese(); ch.China = "中国"; //把子类类型转换成父类类型,发生了隐式转换 Person p = ch; //把父类类型转化成子类类型,需要显示类型转换 Chinese c = (Chinese)p; Console.WriteLine(c.China); Console.ReadKey();
class Person { public string Name { get; set; } } class Chinese:Person { public string China { get; set; } }
原文地址:http://blog.csdn.net/u010355520/article/details/37929771