在编写输出为 WinMD 格式的 C# Metro DLL 时,我有一个公共类Id
。虽然它会覆盖Equals
,但不允许重载==
。
然而,同样的类在 DLL 内部使用,并且不可避免地使用 LINQ,我发现自己在编写.Where(x => x.Id == Ids.House)
这显然行不通。
一种可能的解决方案是定义一个IdInternal
which 是内部的,并且可以覆盖==
然后将其包装在一个Id
.
如果没有该解决方案(我怀疑它必须发生在几个类中),有没有办法通过编译/运行时错误警告开发人员他们不应该使用 == 这个类?