相关疑难解决方法(0)

如何实现IComparable接口?

我正在使用类的实例填充数组:

BankAccount[] a;
. . .

a = new BankAccount[]
{
    new BankAccount("George Smith", 500m),
    new BankAccount("Sid Zimmerman", 300m)
};
Run Code Online (Sandbox Code Playgroud)

一旦我填充这个数组,我想按余额金额对它进行排序.为了做到这一点,我希望能够检查每个元素是否可以使用排序IComparable.
我需要使用接口来做到这一点.到目前为止,我有以下代码:

public interface IComparable
{
    decimal CompareTo(BankAccount obj);
}
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否是正确的解决方案.有什么建议?

c# interface icomparable

70
推荐指数
5
解决办法
8万
查看次数

比较两个对象.

如果我有一个复杂的对象,那么编写代码来比较2个实例以查看它们是否相同的最佳实践模式是什么

c#

14
推荐指数
1
解决办法
3万
查看次数

比较两个对象

使用Object.Equals会导致使用相同构造函数的两个新创建的对象出现false.为什么是这样?我希望能够比较两个对象并查看它们是否相同,换句话说,我想要进行与上面相同的测试,但我希望能够在第一次测试时得到一个真实的(因为这两个对象)应该是相同的).

如何在不为任何特定类构建自己的比较方法的情况下完成此操作.

using System;
class Program
{
    static void Main(string[] args)
    {
        Object Obj1 = new Object();
        Object Obj2 = new Object();
        Console.WriteLine(Obj1.Equals(Obj2));
        Obj2 = Obj1;
        Console.WriteLine(Obj1.Equals(Obj2)); 
    }
}

/* This example produces the following output:
False
True
 */
Run Code Online (Sandbox Code Playgroud)

附录:

Object o1 = new Object();
Object o2 = new Object();

o1.value1 = 1;
o2.value1 = 1;

//Now I want to compare o1 and o2 and see if they are equal
//Can I do this without building my own function?
Run Code Online (Sandbox Code Playgroud)

c# object

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×3

icomparable ×1

interface ×1

object ×1