c sharp 数据类型(摘抄)

预定义数据类型:

c#中把数据类型分为2种,一种是值类型,另一种是引用类型。值类型储存在堆栈中,而引用类型储存在托管堆中。引用类型与值类型的区别参考以下代码:

            //引用类型给出的demo
            int[] x, y;
            x=new int[10];
            x[0] = 10;
            y = x;
            y[0] = 20;
            Console.WriteLine(x[0]);
            //值类型给出的demo
            bool a, b;
            a = true;
            b = a;
            b = false;
            Console.WriteLine(a);

这个例子的输出结果是20和True.它说明,这2个引用变量虽然进行了赋值,但托管堆中只保留了一个引用,都指向了同一块区域。而值类型则不同,当一个布尔类型变量a赋值为true之后,再将a的值赋值给b,堆栈中就会有2个布尔值

c#认可的基本预定义类型没有内置于c#语言中,而是内置于.net Framework中。当声明一个int类型的数据时,实际上是声明了一个System.Int32的一个实例。目前看来这样的做法,有这样的好处:

  • 为多语言的交互铺路,形成了一个Common Type System。
  • 使得基本的数据类型可以看做是支持某些方法的类,其声明出来的数据是支持这些方法的实例。如:
            int i = 10;
            string str = i.ToString();
            Console.WriteLine(str);

c#有15个预定义类型,13个是值类型,2个引用类型:string,object:

  • 所有的整数类型的变量都可以赋予十进制或十六进制的值。
  • 对一个整数是int,uint,long或ulong没有显示的声明,都默认为int。(显示的声明可以在数字后面加上L或UL)
  • 代码中没有对某个非整数类型硬编码,则默认为一个double类型。
  • decimal不是基本类型,所以在计算时使用会有性能的损失。
  • char包含16位。一部分原因是不允许char和byte进行隐式的转换;另外,尽管8位足够编码英语中的每个字符和数字0~9,但不能够编码更大的符号系统中的每个字符(如:中文)。为了面向全世界,计算机行业正从8位字符集向16位的Unicode模式转变。
            string a = "a string";
            string b = a;
            Console.WriteLine("a is "+a);
            Console.WriteLine("b is "+b);
            a = "another string";
            Console.WriteLine("a is "+a);
            Console.WriteLine("b is "+b);

类型 150x150 cSharp编程基础的学习笔记这是我总结的c#预定义类型的mindmap,大致囊括了各个类型的基本信息。其中string类型稍微有点特殊,这里单独抽出来谈谈,尤其注意到string是预定义类型中为数不多的引用类型,代码如上。挺有意思的是,按照之前引用类型与数值类型比较的例子得出的结论,最后一条应该输出“b is another string”。可事实并不是我们想象的那样。虽然string对象保留在堆上,但string的一些常用操作会与其他引用类型有所区别:修改一个字符串,就会创建一个全新的string对象。修改a的值,不是替换了原先的,而是在堆上重新分配了一个新的对象。——这是运算符重载造成的。

流控制:
foreach循环不能修改集合中各项数据的值。虽然这个规则并不是知识体系中的漏洞,但作为之前接触不多的循环结构,还是要总结出来提醒自己。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值