一般情况下对象的比较会涉及到重载Equals方法,这里所说的方法只对同类型对象的比较有效。
  请看下面两段代码:
  1。不同类的比较

c#对象私有属性在重载Equals中的使用public enum ComplexionType
{
c#对象私有属性在重载Equals中的使用    yellow,
c#对象私有属性在重载Equals中的使用    white,
c#对象私有属性在重载Equals中的使用    black
c#对象私有属性在重载Equals中的使用}

c#对象私有属性在重载Equals中的使用
c#对象私有属性在重载Equals中的使用
class Chinese
{
c#对象私有属性在重载Equals中的使用    
public Chinese(ComplexionType complexionType)
{
c#对象私有属性在重载Equals中的使用        
this.complexionType = complexionType;
c#对象私有属性在重载Equals中的使用    }

c#对象私有属性在重载Equals中的使用
c#对象私有属性在重载Equals中的使用    
private ComplexionType complexionType;
c#对象私有属性在重载Equals中的使用
c#对象私有属性在重载Equals中的使用    
public override bool Equals(Object obj)
{
c#对象私有属性在重载Equals中的使用        
if (!((obj is Chinese) || (obj is Japanese)))
{
c#对象私有属性在重载Equals中的使用            
return false;
c#对象私有属性在重载Equals中的使用        }
            Japanese japanese = (Japanese)obj;
c#对象私有属性在重载Equals中的使用        
return this.complexionType == japanese.Complexion;
c#对象私有属性在重载Equals中的使用    }

c#对象私有属性在重载Equals中的使用}

c#对象私有属性在重载Equals中的使用
c#对象私有属性在重载Equals中的使用
class Japanese
{
c#对象私有属性在重载Equals中的使用    
public Japanese(ComplexionType complexionType)
{
c#对象私有属性在重载Equals中的使用        
this.complexionType = complexionType;
c#对象私有属性在重载Equals中的使用    }

c#对象私有属性在重载Equals中的使用
c#对象私有属性在重载Equals中的使用    
private ComplexionType complexionType;
c#对象私有属性在重载Equals中的使用
c#对象私有属性在重载Equals中的使用    
public ComplexionType Complexion
{
c#对象私有属性在重载Equals中的使用        
get
{
c#对象私有属性在重载Equals中的使用            
return complexionType;
c#对象私有属性在重载Equals中的使用        }

c#对象私有属性在重载Equals中的使用    }

c#对象私有属性在重载Equals中的使用}

  注意到上面,如果能直接引用到japanese.complexionType就好了,不过它不是public所以访问不到。
  但是,如果,我想对同样的Chinese类型做比较,情况就不同了,修改上面的Equals
c#对象私有属性在重载Equals中的使用public override bool Equals(Object obj)
{
c#对象私有属性在重载Equals中的使用    
if (!(obj is Chinese))
{
c#对象私有属性在重载Equals中的使用        
return false;
c#对象私有属性在重载Equals中的使用    }

c#对象私有属性在重载Equals中的使用    Chinese chinese 
= (Chinese)obj;
c#对象私有属性在重载Equals中的使用    
return this.complexionType == chinese.complexionType;
c#对象私有属性在重载Equals中的使用}

  虽然,同样定义了Chinese类型的实例,不过这里可以访问到该变量的private部分。

相关文章:

  • 2021-08-12
  • 2022-12-23
  • 2022-12-23
  • 2021-09-11
  • 2021-08-29
  • 2022-12-23
  • 2022-12-23
  • 2022-02-24
猜你喜欢
  • 2021-11-24
  • 2022-12-23
  • 2021-12-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案