Helpex - Trao đổi & giúp đỡ Đăng nhập
9

James Michael Hare gần đây đã viết một bài đăng trên blog về Charcác phương thức tĩnh. Anh ấy nói về việc sử dụng một nhóm phương pháp để viết LINQ ít chữ:

if (myString.Any(c => char.IsLower(c))) { xyzzy(); }
if (myString.Any(char.IsLower)) { xyzzy(); } // Less wordy FTW!

Tương đương trong VB.NET sẽ là:

If myString.Any(Function(c) Char.IsLower(c)) Then xyzzy()
If myString.Any(Char.IsLower) Then xyzzy() 'Compiler error

Đáng buồn thay, tôi không thể làm tương đương với C # ở đây ... trình biên dịch nói với tôi rằng Overload resolution failed because no accessible 'IsLower' accepts this number of arguments... nỗi buồn. Tôi nghĩ nó có thể là do tôi gặp phải Option Strict, nhưng than ôi, điều đó cũng không hoạt động.

Tôi giả sử rằng các nhóm phương thức không có sẵn trong VB.NET ... Có tính năng tương tự nào có sẵn trong VB.NET không? Hoặc bất kỳ lý do cụ thể nào tại sao điều này không thể (sẽ) được thực hiện trong VB.NET?

9 hữu ích 0 bình luận 892 xem chia sẻ
12

Mã VB tương đương sẽ là:

If myString.Any(AddressOf Char.IsLower) Then xyzzy()
12 hữu ích 4 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ vb.net method-group , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading