Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我偶然发现了这段代码:
var knownSeparators = new[] { "\\", "/", "|", "." }; return knownSeparators.FirstOrDefault(path.Contains);
其中 path 是一个字符串,返回值也应该是一个字符串。
尽管 path.Contains 的智能感知建议了一个参数,但没有它也可以正常工作。
这究竟是如何工作的?有没有办法在 vb.net 中复制这种行为?
FirstOrDefault接受一个委托(a Func<T, bool>),这个调用是从方法组创建一个委托。它相当于:
FirstOrDefault
Func<T, bool>
Func<string, bool> predicate = path.Contains; return knownSeparators.FirstOrDefault(predicate);
我怀疑在 VB.NET 中你可以这样做:
Return knownSeparators.FirstOrDefault(AddressOf path.Contains)
...但如果不尝试,我无法确定。