Bất cứ ai cũng có thể đưa ra một ví dụ để chứng minh việc sử dụng Văn hóa bất biến ? Tôi không hiểu những gì tài liệu mô tả.
Bất cứ ai cũng có thể đưa ra một ví dụ để chứng minh việc sử dụng Văn hóa bất biến ? Tôi không hiểu những gì tài liệu mô tả.
Câu trả lời:
Văn hóa bất biến là một nền văn hóa đặc biệt hữu ích vì nó sẽ không thay đổi. Văn hóa hiện tại có thể thay đổi từ người dùng này sang người dùng khác hoặc thậm chí từ người này sang người khác, vì vậy bạn không thể dựa vào đó để giữ nguyên.
Có thể sử dụng cùng một nền văn hóa mỗi lần là rất quan trọng trong một số luồng, ví dụ, tuần tự hóa: bạn có thể có 1,1 giá trị trong một nền văn hóa và 1,1 trong một nền văn hóa khác. Nếu bạn sẽ cố phân tích giá trị "1,1" trong văn hóa thứ hai, thì việc phân tích cú pháp sẽ thất bại. Tuy nhiên, bạn có thể sử dụng văn hóa bất biến để chuyển đổi một số thành một chuỗi và sau đó phân tích lại từ bất kỳ máy tính nào với bất kỳ tập văn hóa nào.
// Use some non-invariant culture.
CultureInfo nonInvariantCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = nonInvariantCulture;
decimal dec = 1.1m;
string convertedToString = dec.ToString();
// Simulate another culture being used,
// following code can run on another computer.
nonInvariantCulture.NumberFormat.NumberDecimalSeparator = ",";
decimal parsedDec;
try
{
// This fails because value cannot be parsed.
parsedDec = decimal.Parse(convertedToString);
}
catch (FormatException)
{
}
// However you always can use Invariant culture:
convertedToString = dec.ToString(CultureInfo.InvariantCulture);
// This will always work because you serialized with the same culture.
parsedDec = decimal.Parse(convertedToString, CultureInfo.InvariantCulture);
System.Globalization
không gian tên.
CultureInfo.InvariantCulture
các tác phẩm vì bạn đã tuần tự hóa cùng một nền văn hóa .... thì nó có giống như sử dụng CultureInfo.CurrentCulture
không?
CultureInfo.InvariantCulture
thì bạn biết rằng bạn sẽ luôn có thể phân tích lại thành số thập phân bằng cách sử dụng CultureInfo.InvariantCulture
. Nếu bạn sử dụng CultureInfo.CurrentCulture
để tuần tự hóa, người dùng của bạn có thể có "en-US" như văn hóa hiện tại của họ. Người dùng tiếp theo phân tích lại thành số thập phân có thể có văn hóa hiện tại sử dụng "," cho dấu phân cách.
Một nền văn hóa giả dựa trên tiếng Anh với hành vi được xác định. Tuyệt vời để viết ra, ví dụ, nhét vào các tệp cấu hình để có thể đọc và ghi bất kể văn hóa mà người dùng đã xác định.
Về cơ bản đó là một nền văn hóa cụ thể là giả tạo và sẽ không thay đổi .
Nó được sử dụng cho những thứ giống nhau bất kể văn hóa (không cần dịch sang văn hóa X nào đó cho phù hợp)
như một ví dụ - https://msdn.microsoft.com/en-us/l Library / 4c5zdc6a (v = vs.100) .aspx . Khi bạn viết ra một tệp dành riêng cho ứng dụng mà người dùng không nên loay hoay, bạn nên sử dụng InvariantCARM cho tất cả các phương thức có tham số văn hóa.
Lưu ý rằng theo các tài liệu được liên kết ở trên:
Tuy nhiên, một ứng dụng chỉ nên sử dụng văn hóa bất biến cho các quy trình yêu cầu kết quả độc lập với văn hóa, chẳng hạn như định dạng và phân tích dữ liệu được duy trì trong một tệp.
Văn hóa bất biến là văn hóa vô cảm; nó được liên kết với ngôn ngữ tiếng Anh nhưng không liên quan đến bất kỳ quốc gia / khu vực nào.
CultureInfo.InvariantCARM lấy một thể hiện của văn hóa bất biến. Nó có thể được sử dụng trong hầu hết mọi phương thức trong không gian tên System.Globalization đòi hỏi phải có văn hóa.
Các đối tượng được trả về bởi các thuộc tính như so sánhInfo, DateTimeFormat và NumberFormat cũng phản ánh các quy ước so sánh chuỗi và định dạng của văn hóa bất biến. Thuộc tính InvariantCARM có ích khi bạn muốn hiển thị dữ liệu bền vững ở định dạng độc lập với văn hóa .
Chẳng hạn, nếu bạn muốn hiển thị một số hoặc datetime theo định dạng cụ thể độc lập với văn hóa hiện tại của ứng dụng, bạn có thể sử dụng CultureInfo.InvariantCARM .
Nó là một ngôn ngữ tiếng Anh đơn giản không theo vùng cụ thể và các thông tin liên quan khác. Nó giống như ngôn ngữ của chính ngôn ngữ lập trình. Bạn có thể dựa vào nó trong việc thiết lập một lịch phổ quát; trong trường hợp bạn cần tạo tên bộ điều khiển, tên URL, tên đại biểu ... vv. và cần mọi thứ để hành động tự nhiên và phổ biến trong số tất cả người dùng.