TextInfo.ReadOnly(TextInfo) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回指定的 TextInfo 对象的只读版本。
public:
static System::Globalization::TextInfo ^ ReadOnly(System::Globalization::TextInfo ^ textInfo);
public static System.Globalization.TextInfo ReadOnly (System.Globalization.TextInfo textInfo);
[System.Runtime.InteropServices.ComVisible(false)]
public static System.Globalization.TextInfo ReadOnly (System.Globalization.TextInfo textInfo);
static member ReadOnly : System.Globalization.TextInfo -> System.Globalization.TextInfo
[<System.Runtime.InteropServices.ComVisible(false)>]
static member ReadOnly : System.Globalization.TextInfo -> System.Globalization.TextInfo
Public Shared Function ReadOnly (textInfo As TextInfo) As TextInfo
参数
返回
如果 textInfo
是只读的,则为由 textInfo
参数指定的 TextInfo 对象。
- 或 -
如果 textInfo
不是只读的,则为由 textInfo
指定的 TextInfo 对象的只读成员副本。
- 属性
例外
textInfo
为 null。
示例
// This example demonstrates the TextInfo.Clone() and
// TextInfo.ReadOnly() methods.
using System;
using System.Globalization;
class Sample
{
public static void Main()
{
// Get the TextInfo of a predefined culture that ships with
// the .NET Framework.
CultureInfo ci = new CultureInfo("en-US");
TextInfo ti1 = ci.TextInfo;
// Display whether the TextInfo is read-only or not.
DisplayReadOnly("1) The original TextInfo object", ti1);
Console.WriteLine();
// Create a clone of the original TextInfo and cast the clone to a TextInfo type.
Console.WriteLine("2a) Create a clone of the original TextInfo object...");
TextInfo ti2 = (TextInfo)ti1.Clone();
// Display whether the clone is read-only.
DisplayReadOnly("2b) The TextInfo clone", ti2);
// Set the ListSeparator property on the TextInfo clone.
Console.WriteLine("2c) The original value of the clone's ListSeparator " +
"property is \"{0}\".", ti2.ListSeparator);
ti2.ListSeparator = "/";
Console.WriteLine("2d) The new value of the clone's ListSeparator " +
"property is \"{0}\".\n", ti2.ListSeparator);
// Create a read-only clone of the original TextInfo.
Console.WriteLine("3a) Create a read-only clone of the original TextInfo object...");
TextInfo ti3 = TextInfo.ReadOnly(ti1);
// Display whether the read-only clone is actually read-only.
DisplayReadOnly("3b) The TextInfo clone", ti3);
// Try to set the ListSeparator property of a read-only TextInfo object. Use the
// IsReadOnly property again to determine whether to attempt the set operation. You
// could use a try-catch block instead and catch an InvalidOperationException when
// the set operation fails, but that programming technique is inefficient.
Console.WriteLine("3c) Try to set the read-only clone's LineSeparator " +
"property.");
if (ti3.IsReadOnly == true)
{
Console.WriteLine("3d) The set operation is invalid.");
}
else
{
// This clause is not executed.
ti3.ListSeparator = "/";
Console.WriteLine("3d) The new value of the clone's ListSeparator " +
"property is \"{0}\".\n", ti2.ListSeparator);
}
}
private static void DisplayReadOnly(string caption, TextInfo ti)
{
Console.WriteLine("{0} is {1}read-only.",
caption, ti.IsReadOnly ? "" : "not ");
}
}
/*
This code example produces the following results:
1) The original TextInfo object is not read-only.
2a) Create a clone of the original TextInfo object...
2b) The TextInfo clone is not read-only.
2c) The original value of the clone's ListSeparator property is ",".
2d) The new value of the clone's ListSeparator property is "/".
3a) Create a read-only clone of the original TextInfo object...
3b) The TextInfo clone is read-only.
3c) Try to set the read-only clone's LineSeparator property.
3d) The set operation is invalid.
*/
' This example demonstrates the TextInfo.Clone() and
' TextInfo.ReadOnly() methods.
Imports System.Globalization
Class Sample
Public Shared Sub Main()
' Get the TextInfo of a predefined culture that ships with
' the .NET Framework.
Dim ci As New CultureInfo("en-US")
Dim ti1 As TextInfo = ci.TextInfo
' Display whether the TextInfo is read-only or not.
DisplayReadOnly("1) The original TextInfo object", ti1)
Console.WriteLine()
' Create a clone of the original TextInfo and cast the clone to a TextInfo type.
Console.WriteLine("2a) Create a clone of the original TextInfo object...")
Dim ti2 As TextInfo = CType(ti1.Clone(), TextInfo)
' Display whether the clone is read-only.
DisplayReadOnly("2b) The TextInfo clone", ti2)
' Set the ListSeparator property on the TextInfo clone.
Console.WriteLine("2c) The original value of the clone's ListSeparator " & _
"property is ""{0}"".", ti2.ListSeparator)
ti2.ListSeparator = "/"
Console.WriteLine("2d) The new value of the clone's ListSeparator " & _
"property is ""{0}""." & vbCrLf, ti2.ListSeparator)
' Create a read-only clone of the original TextInfo.
Console.WriteLine("3a) Create a read-only clone of the original TextInfo object...")
Dim ti3 As TextInfo = TextInfo.ReadOnly(ti1)
' Display whether the read-only clone is actually read-only.
DisplayReadOnly("3b) The TextInfo clone", ti3)
' Try to set the ListSeparator property of a read-only TextInfo object. Use the
' IsReadOnly property again to determine whether to attempt the set operation. You
' could use a try-catch block instead and catch an InvalidOperationException when
' the set operation fails, but that programming technique is inefficient.
Console.WriteLine("3c) Try to set the read-only clone's LineSeparator property.")
If ti3.IsReadOnly = True Then
Console.WriteLine("3d) The set operation is invalid.")
Else
' This clause is not executed.
ti3.ListSeparator = "/"
Console.WriteLine("3d) The new value of the clone's ListSeparator " & _
"property is ""{0}""." & vbCrLf, ti2.ListSeparator)
End If
End Sub
Private Shared Sub DisplayReadOnly(ByVal caption As String, ByVal ti As TextInfo)
Dim middle As String
If ti.IsReadOnly = True Then
middle = ""
Else
middle = "not "
End If
Console.WriteLine("{0} is {1}read-only.", caption, middle)
End Sub
End Class
'
'This code example produces the following results:
'
'1) The original TextInfo object is not read-only.
'
'2a) Create a clone of the original TextInfo object...
'2b) The TextInfo clone is not read-only.
'2c) The original value of the clone's ListSeparator property is ",".
'2d) The new value of the clone's ListSeparator property is "/".
'
'3a) Create a read-only clone of the original TextInfo object...
'3b) The TextInfo clone is read-only.
'3c) Try to set the read-only clone's LineSeparator property.
'3d) The set operation is invalid.
'