gpt4 book ai didi

C#:IComparable 实现私有(private)

转载 作者:太空宇宙 更新时间:2023-11-03 22:22:48 24 4
gpt4 key购买 nike

我是 C# 的新手,所以这可能是一个真正的转储问题:我在我的类中实现了 IComparable 并想用 NUnit 测试它。但是 CompareTo-Method 被标记为私有(private)的,因此无法从测试中访问。
这是什么原因,我该如何解决?

IComparable:

 
public class PersonHistoryItem : DateEntity,IComparable
{
...
int IComparable.CompareTo(object obj)
{
PersonHistoryItem phi = (PersonHistoryItem)obj;
return this.StartDate.CompareTo(phi.StartDate);
}
}

测试:

 
[TestMethod]
public void TestPersonHistoryItem() {
DateTime startDate = new DateTime(2001, 2, 2);
DateTime endDate = new DateTime(2010, 2, 2);
PersonHistoryItem phi1 = new PersonHistoryItem(startDate,endDate);<p></p>

<pre><code> PersonHistoryItem phi2 = new PersonHistoryItem(startDate, endDate);

Assert.IsTrue(phi1.CompareTo(phi2)==0);
}
</code></pre>


最佳答案

它们不是私有(private)的,它们只是 explicitly implemented .将变量声明为 IComparable 应该可以解决问题:

[TestMethod]
public void TestPersonHistoryItem() {
DateTime startDate = new DateTime(2001, 2, 2);
DateTime endDate = new DateTime(2010, 2, 2);
IComparable phi1 = new PersonHistoryItem(startDate,endDate);

IComparable phi2 = new PersonHistoryItem(startDate, endDate);

Assert.IsTrue(phi1.CompareTo(phi2)==0);
}

关于C#:IComparable 实现私有(private),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2515473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com