一、值类型之间的转换:
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();
}
}
输出结果为:
以上就是关于c#中所有我所知道的类型转换了,如有错误的地方,请各位指正。