Giới thiệu
Phương thức ToUpperInvariant() chuyển chuỗi thành chữ hoa sử dụng quy tắc của invariant culture (văn hóa bất biến). Điều này đảm bảo hành vi nhất quán trên mọi hệ thống, không phụ thuộc vào cài đặt vùng域 (locale) của máy tính. Phù hợp cho so sánh nội bộ, key dictionary, serialization, protocol.
Cú pháp
public string ToUpperInvariant();
Ví dụ 1
using System;
using System.Text;
public class Demo
{
public static void Main(string[] args)
{
string str1 = "one";
string str2 = "TWO";
string str3 = "ThrEE";
Console.WriteLine("String 1 = " + str1);
Console.WriteLine("String1 ToUpperInvariant = " + str1.ToUpperInvariant());
Console.WriteLine("String 2 = " + str2);
Console.WriteLine("String2 ToUpperInvariant = " + str2.ToUpperInvariant());
Console.WriteLine("String 3 = " + str3);
Console.WriteLine("String3 ToUpperInvariant = " + str3.ToUpperInvariant());
}
}
Kết quả
String 1 = one String1 ToUpperInvariant = ONE String 2 = TWO String2 ToUpperInvariant = TWO String 3 = ThrEE String3 ToUpperInvariant = THREE
Ví dụ 2
using System;
public class Demo
{
public static void Main(string[] args)
{
string str1 = "abcd";
string str2 = "PQRS";
Console.WriteLine("String 1 = " + str1);
Console.WriteLine("String1 ToUpperInvariant = " + str1.ToUpperInvariant());
Console.WriteLine("String 2 = " + str2);
Console.WriteLine("String2 ToLowerInvariant = " + str2.ToLowerInvariant()); // Minh họa ToLowerInvariant
}
}
Kết quả
String 1 = abcd String1 ToUpperInvariant = ABCD String 2 = PQRS String2 ToLowerInvariant = pqrs
Lưu ý quan trọng
- Invariant Culture: Không thay đổi theo vùng域, ngôn ngữ. Luôn dùng bảng mã Unicode chuẩn.
- Khác với
ToUpper()dùngCurrentCulture(có thể khác biệt: ví dụ tiếng Thổ Nhĩ Kỳ 'i' -> 'İ' có chấm). - Hiệu suất:
ToUpperInvariant()nhanh hơnToUpper(CultureInfo.InvariantCulture)một chút. - Dùng cho: key dictionary, so sánh chuỗi nội bộ, XML/JSON serialization, file path chuẩn hóa.
- Để so sánh không phân biệt hoa/thường:
str1.Equals(str2, StringComparison.OrdinalIgnoreCase)(khuyên dùng hơn ToUpper).