Export (0) Print
Expand All

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 Language Filter 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

Show:
© 2014 Microsoft