c#读书笔记三:类型转换

来源:互联网 发布:机器人与人工智能大会 编辑:程序博客网 时间:2024/06/13 11:09

一、值类型之间的转换:

1.显式转换、隐式转换

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication6{    class Program    {        static void Main(string[] args)        {            int i = 33;//i是int 类型            Console.WriteLine("i的类型:{0}",i.GetType());//打印i的类型            double j=i;//int 类型隐式转换为double 类型            Console.WriteLine("j的类型:{0}",j.GetType());//打印j的类型            //int x;            double k=5.333;            //Console.WriteLine("x的类型:{0}",x.GetType());            int x = (int)k;//double 类型显式转换为int类型            Console.WriteLine("x的类型为:{0},{1}",x.GetType(),x);//打印x的值及类型            Console.Read();        }    }}
显式转换应用于更精确的转换为较为精确的,有个精确度的下降

而隐式转换应用于较为精确的转换为更精确地,有个精确度的提高

2.string类型的转换

    好多人都会把字符串类型错误的当成引用类型其实string是地地道道的值类型,而string类型与其它值类型之间的转换也是很简单的

class Program    {        static void Main(string[] args)        {            string s = "18";            int a1 = int.Parse(s);            int a2;            int.TryParse(s, out a2);            int a3 = Convert.ToInt32(s);            Console.WriteLine("a1的类型为:{0}", a1.GetType());            Console.WriteLine("a2的类型为:{0}", a2.GetType());            Console.WriteLine("a3的类型为:{0}", a3.GetType());//以上为string类型转换为int类型            string a4 = a1.ToString();            string a5 = a2.ToString();            string a6 = a3.ToString();            Console.WriteLine("a4的类型为:{0}", a4.GetType());            Console.WriteLine("a5的类型为:{0}", a5.GetType());            Console.WriteLine("a6的类型为:{0}", a6.GetType());//int类型转换为string类型            Console.Read();        }    }
3.var类型

 class Program    {        static void Main(string[] args)        {            var i = 3;            var j = "3";            Console.WriteLine("i的类型为:{0}", i.GetType());            Console.WriteLine("j的类型为:{0}", j.GetType());            Console.Read();        }    }

输出:

用Var类型预先不用知道变量的类型;根据你给变量赋值来判定变量属于什么类型;

但是使用var变量类型时需注意:

1:必须在定义时初始化,即不能先定义后初始化,如:var a;a = 1;这样是不允许的

2:一旦初始化完成,不能再给变量赋与初始化不同类型的变量

3:var类型的变量必须是局部变量

初始化之后就跟值类型之间的类型转换是一样的。

二、值类型与引用类型之间的转换:装箱与拆箱

class Program    {        static void Main(string[] args)        {            int i = 1;            object o=i;//装箱            Console.WriteLine("o的类型为:{0}", o.GetType());            int j=(int)o;//拆箱            Console.WriteLine("j的类型为:{0}",j.GetType());            Object b="唐珏的工作室";            Console.WriteLine("b的类型为:{0}", b.GetType());            Console.Read();        }    }
输出结果为:


而这里本来转换为object类型的j或者是本身就是object类型的b打印出来都是具体的int类型和string类型,这是不奇怪的,因object类型是所有类型的基类。

以上就是关于c#中所有我所知道的类型转换了,如有错误的地方,请各位指正。


0 0
原创粉丝点击