C#数据类型 初步认识

来源:互联网 发布:二次元 社区 论坛源码 编辑:程序博客网 时间:2024/06/05 09:43

C#的数据类型分为两种,值类型和引用类型。

这里是我从.net2.0 书籍得到微软对其的具体分类 ----(.net framework 2.0 程序设计)



有一点值得大家注意,所有的数据类型都直接或间接继承了Object的类型。

string 类型是直接继承了Object 

所有值类型直接继承了ValueType 同时也继承了Object (笔者无法对其继续深入了) 这是一个细节,大家切记


那两种类型是如何在内存分配呢?

1.值类型的变量是直接存储数据,实例是被分配在栈中的,特性  永远不能为空!

2.引用类型的变量存储的是数据在内存的地址,而实例是被分配在可以进行垃圾回收的堆中的!引用类型的变量可以为空


具体的,来讲讲引用类型的一些特点吧

1.一份数据可以被多个变量引用,这样做节省资源,但是数据源只有一份,都数据源进行修改,就会导致有引用该数据的变量都有变化。


我们直接来代码吧

例子1

 class Program
    {
        static void Main(string[] args)
        {
            int i = null;
            string str = null;
        } 
    }

大家都知道 int i =null ;这样声明是错的,具体原因是什么呢,其实就值类型永远不能为空,这个特性

string str =null 这样声明就是对的呢,是因为应用类型是可以为空 。


例子2

 static void Main(string[] args)
        {
            string str1 = "";
            string str = null;
        } 

这两种声明有什么区别呢  第一张其实在内存已经开辟了空间存放变量,而第二中只是声明一个内存地址 没有去开辟内存空间


笔者先谈这么多,下次继续

1 1