object相等的问题

桂花 2012-02-06 06:01:27
        private void r(object a,object b)
{
if (a == b)
{
//相等
}
else
{
//不相等
}
}


这样子,r(null,null)是相等的,r(1,1)是不相等的

如果用object.Equals(),r(1,1)是相等的,r(null,null)直接报错

有什么简便的语句可以综合两种情况都报相等????好像只能先判断a或者b是不是空???因为我这边的程序是a为null则会有很多逻辑,b为空也要有很多逻辑,但如果r(null,null)和r(1,1)都报相等,那我就少写很多逻辑了。
...全文
63 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
1和1不等和装箱有关系
Equals报错则是因为它是object对象的成员方法,需要实例引用
EnForGrass 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 p2227 的回复:]

引用 1 楼 chinajiyong 的回复:

C# code

private void DataIsEqual(object a, object b)
{
if (a == b||a.Equals(b))
{
//相等
MessageBox.Show("相等");
}
……
如果a是null就不行了吧,

这样:
如果a和b都不是空,则用 object.Equ……
[/Quote]
我承认我错了,
qldsrx 2012-02-06
  • 打赏
  • 举报
回复
private void r(object a,object b)
{
if(a == null)
{
if(b == null)
{
//相等
}
else
{
//不相等
}
}
else if (a.Equals(b))
{
//相等
}
else
{
//不相等
}
}
p2227 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chinajiyong 的回复:]

C# code

private void DataIsEqual(object a, object b)
{
if (a == b||a.Equals(b))
{
//相等
MessageBox.Show("相等");
}
……
[/Quote]如果a是null就不行了吧,

这样:
如果a和b都不是空,则用 object.Equals() 判断,
否则用 == 判断
EnForGrass 2012-02-06
  • 打赏
  • 举报
回复

private void DataIsEqual(object a, object b)
{
if (a == b||a.Equals(b))
{
//相等
MessageBox.Show("相等");
}
else
{
//不相等
MessageBox.Show("不相等");
}
}

你这样判断不就完了

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧