有没有办法强制 C# 编译器忽略缺少的对象运算符重载,而是在运行时处理该检查?我问是因为我有一个容器,其中包含多个对象,这些对象具有 int、string、ushort 等类型的各种属性。我正在为该容器创建搜索功能,并希望能够搜索各个字段。
我正在使用谓词和 lambda 表达式。
这就是我要的:
var data = container.Retrieve(ID => (ID == 5), Date => (Date > somedate));
假设 ID 和 Date 是容器对象中的字段
这就是我今天必须做的(虽然它有效):
var data = container.Retrieve(ID => ((int)ID == 5), Date => ((DateTime)Date > somedate));
与第一个示例相比,额外的铸件看起来不是很好,我不想这样做。我希望可以选择在运行时检查它。
有没有办法做到这一点?