2013-10-22 23 views
5

Khi tôi dịch ngược phương pháp String.IndexOf (String), tôi thấy điều này;Thuộc tính String.LegacyMode là gì?

[__DynamicallyInvokable] 
public int IndexOf(string value) 
{ 
    return this.IndexOf(value, string.LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture); 
} 

Trong định nghĩa tham số thứ hai:

  • nếu string.LegacyModetrue, StringComparison.Ordinal được đánh giá.
  • nếu string.LegacyModefalse, StringComparison.CurrentCulture được đánh giá.

Nhưng String.LegacyMode chính xác là gì?

Khi tôi biên soạn lại tài sản này, tôi thấy điều này:

internal static bool LegacyMode 
{ 
    get 
    { 
    return CompatibilitySwitches.IsAppEarlierThanSilverlight4; 
    } 
} 

Tôi tìm kiếm về String.LegacyModeCompatibilitySwitches.IsAppEarlierThanSilverlight4 trên Google đầu tiên nhưng tôi không thể tìm thấy bất kỳ thông tin hữu ích.

Bạn có thể khai sáng cho tôi không?

+1

@Downvoter quan tâm để nhận xét ít nhất? –

Trả lời

5

Tại sao không kiểm tra nguồn, MSDN :)

Chỉnh sửa Ninja: Tôi vừa thấy liên kết bạn đã đăng ở đầu câu hỏi của mình. Chọn Silverlight từ danh sách thả xuống các phiên bản khác và bạn sẽ thấy ghi chú bên dưới.

String.IndexOf Method

Thuyết Người gọi

Bắt đầu từ Silverlight 4, hành vi của các phương pháp String.IndexOf (String) đã thay đổi. Trong Silverlight 4, nó thực hiện so sánh nhạy cảm với chữ và nhạy cảm với văn hóa bằng cách sử dụng văn hóa hiện tại để tìm ra giá trị đầu tiên. Điều này phù hợp với hành vi của phương thức String.IndexOf (String) trong Khuôn khổ .NET đầy đủ. Trong Silverlight 2 và Silverlight 3, String.IndexOf (String) thực hiện so sánh thứ tự. Nếu thời gian chạy ngôn ngữ chung xác định rằng một ứng dụng dựa trên Silverlight được biên dịch bằng Silverlight 2 hoặc Silverlight 3, nó thực hiện so sánh thứ tự; nếu không, nó thực hiện một so sánh văn hóa nhạy cảm.

Các vấn đề liên quan