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

15 篇文章 0 订阅

一、值类型之间的转换:

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值