像 Linq 的 OrderBy 这样的东西,你可以在其中指定它应该用来进行排序的键。
具体来说,在我的例子中,我有一个等效于具有两个 bool 属性的结构,一个 .IsNice 和另一个 .IsPretty; 然后我希望能够执行一个函数,返回一个实例是漂亮还是漂亮。
我可以做两个功能,
bool itIsPretty (ExampleStruct toVerify);
bool itIsNice (ExampleStruct toVerify);
然而,两者本质上是一样的!两者都无非是返回验证。(IsPretty / IsNice),我不想有复制和粘贴的功能。
另一种选择是进行以下操作:
bool isItNiceOrPretty (ExampleStruct toVerify, bool checkForNiceness)
{
if (checkForNiceness) return toVerify.IsNice;
else return toVerify.IsPretty;
}
但是,如果不止这两种类型呢?好吧,我可以将此布尔参数转换为整数或字符串,但随后我需要保留一个包含所有键值及其各自字段的表......这有可能导致混乱和反直觉我添加和/或删除示例结构的字段,我什至不想再考虑它了。
那么,有没有办法按照我的想法来创建这样一个灵活的功能?还是我必须坚持可怕的 Ctrl+C Ctrl+V?