class struct Equals

{
    class clsA
    {
        private int _i;
        public int I
        {
            set { _i = value; }
            get { return _i; }
        }
    }

    struct strctB
    {
        private int _i;
        public int I
        {
            set { _i = value; }
            get { return _i; }
        }
    }

    class Program
    {
        static void Main1(string[] args)
        {
            clsA a1=new clsA();
            a1.I=1;
            clsA a2=a1;
            a2.I=2;
            Console.WriteLine("{0},{1}", a1.I, a2.I);//2,2
            strctB b1=new strctB();
            b1.I = 1;
            strctB b2=b1;
            b2.I = 2;
            Console.WriteLine("{0},{1}", b1.I, b2.I);//1,2
        }
        static void Main(string[] args)
        {
            clsA a1 = new clsA();
            a1.I = 1;
            clsA a2 = new clsA();
            a2.I = 1;
            Console.WriteLine("{0}", a1.Equals(a2));//False
            strctB b1 = new strctB();
            b1.I = 1;
            strctB b2 = new strctB();
            b2.I = 1;
            Console.WriteLine("{0}", b1.Equals(b2));//True
        }
    }
}
时间: 2024-10-12 15:44:14

class struct Equals的相关文章

C#扫盲之:==/Equals /ReferenceEquals 异同的总结,相等性你真的知道吗?

1.前言 == Equals ReferenceEquals 三个相等性测试,是.NET提供给程序员使用的三个方法,他们之间有什么联系和区别,你真的仔细研究过?虽然之前也多多少少知道一点,但是有时候又难免混淆他们之间的概念和所适用的场合,决定做一个总结系统的描述这三个宝宝 2.值类型比较和引用类型比较 在编程中实际上我们只需要这两种比较,c#中类型也就这两种 (1)值类型的比较:一般我们就是判断两个值类型实例的各自包含的值是否相等 (2)引用类型的比较:由于引用类型在内存中的分布有两部分,一个是

Struct—自定义一个简单的mystruct

传统mvc开发总结: 1. 跳转代码写死,不灵活 2. 每次都去写servlet,web.xml中配置servlet! (配置目的: 请求, Servlet处理类) 一个简单的struct案例,描述如下 登陆.注册 登陆成功     首页 登入失败     登入页 注册成功      登陆页 整理如下 项目列表如下 代码实现 前台页面登入页: <form action="${pageContext.request.contextPath }/login.action" name=

UVA10483 - The Sum Equals the Product(枚举)

题目链接 题意:在实数a,b之间找到一个数c(最多到小数点的后两位),找出存在c = x + y + z = x * y * z,按字典序输出. 思路:先将数都扩大100倍,方便计算.但直接枚举所有情况的话会TLE,所以我们要缩小枚举范围.先枚举x,因为x,y,z要按照非递减顺序,所以x * x * x必须要小于c * 10000,再枚举y,同理可的x * y * y也必须小于c * 10000,至于z可以由公式(x + y + z)* 10000 = x * y * z得到,所以z = (x

[C#基础知识]Class和Struct的区别

class和struct语法几乎相同,但其本质却截然不同:class是引用类型,struct是值类型,也就是说在内存中存储方式有别,由此产生的一系列差异性. class(类)是面向对象编程的基本概念,是一种自定义数据结构类型,通常包含字段.属性.方法.构造函数.索引器.事件等.在.NET中,所有的类都继承自System.Object类,是一种引用类型,也就是说,当我们new出一个类的实例时,对象保存了该实例实际数据的引用地址,而对象的值保存在托管堆中. struct(结构)是一种值类型,用于将一

c#equals相关

1.==是直接比较值类型的值或引用类型的引用地址,但==不能用于struct,struct只能用equals来比较.==一般情况下与object.equals得到的结果是相等的. 2.ReferenceEquals为Object下的静态方法,用于比较引用地址.因此所有值类型的比较都为false.string比较特殊,只要字符相等,==.equals.Object.ReferenceEquals 三者得到的结果都是true. 3.对于引用类型,如果需要进行比较,直接用equals来比较,通常都是返

c# Equals方法

很多C#的教材都会强调对象相等的概念.我们都知道,在C#的世界里存在两种等同性.一种是逻辑等同性:如果两个对象在逻辑上代表同样的值,则称他们具有逻辑等同性.另一种是引用等同性:如果两个引用指向同一个对象实例,则称他们具有引用等同性. 众所周知,Object类型有一个名为Equals的实例方法可以用来确定两个对象是否相等.Object的Equals的默认实现比较的是两个对象的引用等同性.而Object的派生类ValueTpye重写了Equals方法,它比较的是两个对象的逻辑等同性.也就是说,在C#

如何使用==操作符,Equals方法,ReferenceEquals方法,IEquatable接口比较2个对象

"世界上不会有两片完全相同的树叶",这句话适用于现实世界.而在软件世界中,这句话变成了"世界上必须有两片完全相同的树叶",否则,很多事情无以为继. 当比较2个对象是否相等时,通常情况下:==操作符用来比较值类型,比较的是值:实例方法Equals比较引用类型,比较的是对象的地址.静态方法Object.ReferenceEquals既可以比较引用类型也可以比较值类型,但比较的是对象的地址. 在实际项目中,当比较2个引用类型对象时,我们的需求变为:通过依次比较2个对象的所

C#学习笔记-----==与equals

http://blog.csdn.net/wuchen_net/article/details/5409327 http://www.cnblogs.com/chen0720/p/3209398.html 1. ReferenceEquals, == , Equals Equals , == , ReferenceEquals都可以用于判断两个对象的个体是不是相等. a) ReferenceEquals ReferenceEquals是Object的静态方法,用于比较两个引用类型的对象是否是对于

自然对齐:sizeof struct, union

[1]以下关于 JVM 的叙述,哪些项正确? A.JVM 运行于操作系统之上,它依赖于操作系统 B.JVM 运行于操作系统之上,它与操作系统无关 C.JVM 支持 Java 程序运行,它能够直接运行 Java 字节码文件 D.JVM 支持 Java 程序运行,它能够直接运行 Java 源代码文件 扩展名为.java的是源代码文件(文本文件):开发时编写代码的文件 扩展名为.class的是字节码文件(二进制):系统运行时执行的文件 [2]下列选项中正确的表达式是: A.byte b = 128;