James Michael Hare 最近写了一篇关于Char
静态方法的博客文章。他谈到使用方法组来编写简洁的 LINQ:
if (myString.Any(c => char.IsLower(c))) { xyzzy(); }
if (myString.Any(char.IsLower)) { xyzzy(); } // Less wordy FTW!
VB.NET 中的等价物是:
If myString.Any(Function(c) Char.IsLower(c)) Then xyzzy()
If myString.Any(Char.IsLower) Then xyzzy() 'Compiler error
可悲的是,我不能在这里做与 C# 等效的操作……编译器告诉我Overload resolution failed because no accessible 'IsLower' accepts this number of arguments
……悲伤。我以为这可能是因为我一直Option Strict
在做,但可惜,这也不起作用。
我假设方法组在 VB.NET 中不可用...在 VB.NET 中是否有类似的功能可用?或者有什么特殊原因不能(不会)在 VB.NET 中完成?