我正在创建一个内部类,用于提供合同模式的构造。
using System;
using System.Runtime.Serialization;
namespace DCS2000.Common35.Core
{
public class Assertion
{
public static void Ensure(bool test)
{
if (!test)
{
throw new PreconditionException("Precondition test failed");
}
}
public static void Ensure(object obj)
{
if (obj == null)
{
throw new PreconditionException("Precondition null object failed");
}
}
public static void Require(bool test)
{
if (!test)
{
throw new PostconditionException("Postcondition test failed");
}
}
public static void Require(object obj)
{
if (obj == null)
{
throw new PostconditionException("Postcondition null object failed");
}
}
}
}
当开发者使用它时,他们将在Intellisense中看到以下选项:
- Ensure (确保)
- Equals (相等)
- ReferenceEquals (引用相等)
- Require (需要)
这很令人困惑,我想知道是否有方法可以隐藏 Equals 和 ReferenceEquals。
注意:我已经尝试过这个,但对我没有用:
[EditorBrowsable(EditorBrowsableState.Never)]
public override bool Equals(object obj)
{
return base.Equals(obj);
}