CultureInfo.ReadOnly Method
Returns a read-only wrapper around the specified CultureInfo.
[Visual Basic] Public Shared Function ReadOnly( _ ByVal ci As CultureInfo _ ) As CultureInfo [C#] public static CultureInfo ReadOnly( CultureInfo ci ); [C++] public: static CultureInfo* ReadOnly( CultureInfo* ci ); [JScript] public static function ReadOnly( ci : CultureInfo ) : CultureInfo;
Parameters
- ci
- The CultureInfo to wrap.
Return Value
A read-only CultureInfo wrapper around ci.
Exceptions
| Exception Type | Condition |
|---|---|
| ArgumentNullException | ci is a null reference (Nothing in Visual Basic). |
Remarks
This wrapper prevents any modifications to ci, to the ci. DateTimeFormat instance, or to the ci. NumberFormat instance.
Example
[Visual Basic, C#, C++] The following code example shows that CultureInfo.ReadOnly also helps protect the DateTimeFormatInfo and NumberFormatInfo instances associated with the CultureInfo.
[Visual Basic] Imports System Imports System.Globalization Public Class SamplesCultureInfo Public Shared Sub Main() ' Creates a CultureInfo. Dim myCI As New CultureInfo("en-US") ' Creates a read-only CultureInfo based on myCI. Dim myReadOnlyCI As CultureInfo = CultureInfo.ReadOnly(myCI) ' Display the read-only status of each CultureInfo and their DateTimeFormat and NumberFormat properties. If myCI.IsReadOnly Then Console.WriteLine("myCI is read only.") Else Console.WriteLine("myCI is writable.") End If If myCI.DateTimeFormat.IsReadOnly Then Console.WriteLine("myCI.DateTimeFormat is read only.") Else Console.WriteLine("myCI.DateTimeFormat is writable.") End If If myCI.NumberFormat.IsReadOnly Then Console.WriteLine("myCI.NumberFormat is read only.") Else Console.WriteLine("myCI.NumberFormat is writable.") End If If myReadOnlyCI.IsReadOnly Then Console.WriteLine("myReadOnlyCI is read only.") Else Console.WriteLine("myReadOnlyCI is writable.") End If If myReadOnlyCI.DateTimeFormat.IsReadOnly Then Console.WriteLine("myReadOnlyCI.DateTimeFormat is read only.") Else Console.WriteLine("myReadOnlyCI.DateTimeFormat is writable.") End If If myReadOnlyCI.NumberFormat.IsReadOnly Then Console.WriteLine("myReadOnlyCI.NumberFormat is read only.") Else Console.WriteLine("myReadOnlyCI.NumberFormat is writable.") End If End Sub 'Main End Class 'SamplesCultureInfo ' This code produces the following output. ' ' myCI is writable. ' myCI.DateTimeFormat is writable. ' myCI.NumberFormat is writable. ' myReadOnlyCI is read only. ' myReadOnlyCI.DateTimeFormat is read only. ' myReadOnlyCI.NumberFormat is read only. [C#] using System; using System.Globalization; public class SamplesCultureInfo { public static void Main() { // Creates a CultureInfo. CultureInfo myCI = new CultureInfo( "en-US" ); // Creates a read-only CultureInfo based on myCI. CultureInfo myReadOnlyCI = CultureInfo.ReadOnly( myCI ); // Display the read-only status of each CultureInfo and their DateTimeFormat and NumberFormat properties. Console.WriteLine( "myCI is {0}.", myCI.IsReadOnly ? "read only" : "writable" ); Console.WriteLine( "myCI.DateTimeFormat is {0}.", myCI.DateTimeFormat.IsReadOnly ? "read only" : "writable" ); Console.WriteLine( "myCI.NumberFormat is {0}.", myCI.NumberFormat.IsReadOnly ? "read only" : "writable" ); Console.WriteLine( "myReadOnlyCI is {0}.", myReadOnlyCI.IsReadOnly ? "read only" : "writable" ); Console.WriteLine( "myReadOnlyCI.DateTimeFormat is {0}.", myReadOnlyCI.DateTimeFormat.IsReadOnly ? "read only" : "writable" ); Console.WriteLine( "myReadOnlyCI.NumberFormat is {0}.", myReadOnlyCI.NumberFormat.IsReadOnly ? "read only" : "writable" ); } } /* This code produces the following output. myCI is writable. myCI.DateTimeFormat is writable. myCI.NumberFormat is writable. myReadOnlyCI is read only. myReadOnlyCI.DateTimeFormat is read only. myReadOnlyCI.NumberFormat is read only. */ [C++] #using <mscorlib.dll> using namespace System; using namespace System::Globalization; int main() { // Creates a CultureInfo. CultureInfo* myCI = new CultureInfo(S"en-US"); // Creates a read-only CultureInfo based on myCI -> CultureInfo * myReadOnlyCI = CultureInfo::ReadOnly(myCI); // Display the read-only status of each CultureInfo and their DateTimeFormat and NumberFormat properties. Console::WriteLine(S"myCI is {0}.", myCI -> IsReadOnly ? S"read only" : S"writable"); Console::WriteLine(S"myCI -> DateTimeFormat is {0}.", myCI -> DateTimeFormat -> IsReadOnly ? S"read only" : S"writable"); Console::WriteLine(S"myCI -> NumberFormat is {0}.", myCI -> NumberFormat -> IsReadOnly ? S"read only" : S"writable"); Console::WriteLine(S"myReadOnlyCI is {0}.", myReadOnlyCI -> IsReadOnly ? S"read only" : S"writable"); Console::WriteLine(S"myReadOnlyCI -> DateTimeFormat is {0}.", myReadOnlyCI -> DateTimeFormat -> IsReadOnly ? S"read only" : S"writable"); Console::WriteLine(S"myReadOnlyCI -> NumberFormat is {0}.", myReadOnlyCI -> NumberFormat -> IsReadOnly ? S"read only" : S"writable"); } /* This code produces the following output. myCI is writable. myCI -> DateTimeFormat is writable. myCI -> NumberFormat is writable. myReadOnlyCI is read only. myReadOnlyCI -> DateTimeFormat is read only. myReadOnlyCI -> NumberFormat is read only. */
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
See Also
CultureInfo Class | CultureInfo Members | System.Globalization Namespace | IsReadOnly