C#数据类型 初步认识

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;
        } 

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


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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值