也谈C#的class和struct的区别

随便在网上搜索一下C#中class和struct的区别,都会找出一堆的网页来解释这个问题。我这这里只是说一下我在实际工作中碰到的的问题:
实际上就是一个List<>中定位某一个元素的问题,暂时称这个元素为ClassA,因为最初的时候将它定义为了类。这个数组中有多个元素的属性值是一模一样。通过调用List<>的IndexOf方法可以找到一个对象是否在这个List<>中,并且可以返回具体的序号。我的程序最初也是这么做的,工作也很正常。后来程序改版并进行优化,将这个元素由类改为了结构,其他地方不变,于是就出现了问题,通过调用List<>的IndexOf方法还是可以判断一个值是否在这个List<>中,但是如果这个值在Lis<>中有超过2个,则不能很好的定位这个值究竟是对应的哪个序号。
其实这个就是class和struct的区别之一,class是引用类型,而struct是值类型,引用类型的两个对象就算他们的属性一模一样,但是套用C中的语言来说就是他们的存放的内存地址不同,引用类型做比较时比较的是内存地址是否不同。而值类型比较的是值本身是否相同。
下面是我在C#中写的一个简单的示例程序,可以参考一下:
 
示例程序地址,项目名称为IndexOfArray:
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值