Lý do tôi hỏi là vì tôi đã viết một phương pháp mở rộng để sử dụng trong Silverlight chỉ để tìm ra tính năng kỳ diệu bắt đầu hoạt động cho ánh sáng bạc.
Có một phương pháp public bool string.Contains(string)
cho tất cả các phiên bản của .NET từ 2,0 trở lên (2.0, 3.0, 3.5, 4.0, SL 3/4 WP 7.0/7.1).
Điều thú vị là phiên bản SL chỉ được liệt kê từ SL 3/4 - là bạn có thể cập nhật từ giải pháp 2.0 không? Điều đó có thể rồi giải thích cho điều đó.
Nếu không, phương pháp đã xác định luôn được ưu tiên hơn phương pháp mở rộng, vì vậy phương pháp mở rộng của bạn sẽ không bao giờ được gọi (chúng tôi có thể loại trừ .NET 1.1 vì trình biên dịch C# 1.2 không bao gồm các phương pháp mở rộng).
Đối với .NET 2.0 tài liệu MSDN này như:
Phương pháp này thực hiện một từ (case-sensitive và văn hóa nhạy cảm) tìm kiếm bằng cách sử dụng văn hóa hiện hành. Tìm kiếm bắt đầu tại vị trí ký tự đầu tiên của chuỗi này và tiếp tục thông qua vị trí ký tự cuối cùng.
Tất cả các phiên bản khác (bao gồm Silverlight) được liệt kê như:
Phương pháp này thực hiện một thứ tự (case-sensitive và văn hóa-insensitive) so sánh. Tìm kiếm bắt đầu tại vị trí ký tự đầu tiên của chuỗi này và tiếp tục thông qua vị trí ký tự cuối cùng.
Nếu bạn đang nhìn thấy khác (xin treble kiểm tra), nó có thể là một lỗi khuôn khổ ... nhưng tôi đang thận trọng chờ đợi một lời giải thích đơn giản hơn.
Nguồn
2011-08-31 22:15:47
tôi chủ yếu là kích thích rằng có sự khác biệt điên trong hệ thống giữa nói: c: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ Silverlight \ v4.0 \ system.dll C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ System.dll Cả hai hệ thống và System.String.Contains() hoạt động khác nhau, nó có nhiều phiền toái hơn bất cứ điều gì nhưng tôi tiếp tục chạy thành những thứ nhỏ như thế này –
Tôi vừa thử nghiệm trên một dự án Silverlight tiêu chuẩn; Nó đã trả về 'false' như mong đợi –