CultureInfo.Clone メソッド
現在の CultureInfo のコピーを作成します。
Public Overridable Function Clone() As Object Implements _ ICloneable.Clone
[C#]
public virtual object Clone();
[C++]
public: virtual Object* Clone();
[JScript]
public function Clone() : Object;
戻り値
現在の CultureInfo のコピー。
実装
解説
元の CultureInfo が読み取り専用であった場合でも、そのクローンには書き込むことができます。したがって、そのクローンのプロパティは変更できます。
オブジェクトの簡易コピーとは、オブジェクトだけのコピーです。オブジェクトにその他のオブジェクトへの参照が含まれている場合、簡易コピーでは、この参照先オブジェクトのコピーは作成されません。簡易コピーは、代わりに元のオブジェクトを参照します。対照的に、オブジェクトの詳細コピーでは、オブジェクトのコピーと、このオブジェクトが直接的または間接的に参照するすべての対象のコピーが作成されます。
CultureInfo.Clone は簡易コピーですが、例外があります。 NumberFormat プロパティと DateTimeFormat プロパティから返されたオブジェクトもクローン作成されます。このため、 CultureInfo クローンは、元の CultureInfo に影響を与えずに NumberFormat と DateTimeFormat のプロパティを変更できます。
使用例
[Visual Basic, C#, C++] CultureInfo.Clone が CultureInfo に関連付けられている DateTimeFormatInfo インスタンスと NumberFormatInfo インスタンスのクローンも作成するコードの例を次に示します。
Imports System
Imports System.Globalization
Public Class SamplesCultureInfo
Public Shared Sub Main()
' Creates and initializes a CultureInfo.
Dim myCI As New CultureInfo("en-US", False)
' Clones myCI and modifies the DTFI and NFI instances associated with the clone.
Dim myCIclone As CultureInfo = CType(myCI.Clone(), CultureInfo)
myCIclone.DateTimeFormat.AMDesignator = "a.m."
myCIclone.DateTimeFormat.DateSeparator = "-"
myCIclone.NumberFormat.CurrencySymbol = "USD"
myCIclone.NumberFormat.NumberDecimalDigits = 4
' Displays the properties of the DTFI and NFI instances associated with the original and with the clone.
Console.WriteLine("DTFI/NFI PROPERTY" + ControlChars.Tab + "ORIGINAL" + ControlChars.Tab + "MODIFIED CLONE")
Console.WriteLine("DTFI.AMDesignator" + ControlChars.Tab + "{0}" + ControlChars.Tab + ControlChars.Tab + "{1}", myCI.DateTimeFormat.AMDesignator, myCIclone.DateTimeFormat.AMDesignator)
Console.WriteLine("DTFI.DateSeparator" + ControlChars.Tab + "{0}" + ControlChars.Tab + ControlChars.Tab + "{1}", myCI.DateTimeFormat.DateSeparator, myCIclone.DateTimeFormat.DateSeparator)
Console.WriteLine("NFI.CurrencySymbol" + ControlChars.Tab + "{0}" + ControlChars.Tab + ControlChars.Tab + "{1}", myCI.NumberFormat.CurrencySymbol, myCIclone.NumberFormat.CurrencySymbol)
Console.WriteLine("NFI.NumberDecimalDigits" + ControlChars.Tab + "{0}" + ControlChars.Tab + ControlChars.Tab + "{1}", myCI.NumberFormat.NumberDecimalDigits, myCIclone.NumberFormat.NumberDecimalDigits)
End Sub 'Main
End Class 'SamplesCultureInfo
' This code produces the following output.
'
' DTFI/NFI PROPERTY ORIGINAL MODIFIED CLONE
' DTFI.AMDesignator AM a.m.
' DTFI.DateSeparator / -
' NFI.CurrencySymbol $ USD
' NFI.NumberDecimalDigits 2 4
[C#]
using System;
using System.Globalization;
public class SamplesCultureInfo {
public static void Main() {
// Creates and initializes a CultureInfo.
CultureInfo myCI = new CultureInfo("en-US", false);
// Clones myCI and modifies the DTFI and NFI instances associated with the clone.
CultureInfo myCIclone = (CultureInfo) myCI.Clone();
myCIclone.DateTimeFormat.AMDesignator = "a.m.";
myCIclone.DateTimeFormat.DateSeparator = "-";
myCIclone.NumberFormat.CurrencySymbol = "USD";
myCIclone.NumberFormat.NumberDecimalDigits = 4;
// Displays the properties of the DTFI and NFI instances associated with the original and with the clone.
Console.WriteLine( "DTFI/NFI PROPERTY\tORIGINAL\tMODIFIED CLONE" );
Console.WriteLine( "DTFI.AMDesignator\t{0}\t\t{1}", myCI.DateTimeFormat.AMDesignator, myCIclone.DateTimeFormat.AMDesignator );
Console.WriteLine( "DTFI.DateSeparator\t{0}\t\t{1}", myCI.DateTimeFormat.DateSeparator, myCIclone.DateTimeFormat.DateSeparator );
Console.WriteLine( "NFI.CurrencySymbol\t{0}\t\t{1}", myCI.NumberFormat.CurrencySymbol, myCIclone.NumberFormat.CurrencySymbol );
Console.WriteLine( "NFI.NumberDecimalDigits\t{0}\t\t{1}", myCI.NumberFormat.NumberDecimalDigits, myCIclone.NumberFormat.NumberDecimalDigits );
}
}
/*
This code produces the following output.
DTFI/NFI PROPERTY ORIGINAL MODIFIED CLONE
DTFI.AMDesignator AM a.m.
DTFI.DateSeparator / -
NFI.CurrencySymbol $ USD
NFI.NumberDecimalDigits 2 4
*/
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Globalization;
int main()
{
// Creates and initializes a CultureInfo.
CultureInfo* myCI = new CultureInfo(S"en-US", false);
// Clones myCI and modifies the DTFI and NFI instances associated with the clone.
CultureInfo * myCIclone = dynamic_cast<CultureInfo*>(myCI -> Clone());
myCIclone -> DateTimeFormat -> AMDesignator = S"a.m.";
myCIclone -> DateTimeFormat -> DateSeparator = S"-";
myCIclone -> NumberFormat -> CurrencySymbol = S"USD";
myCIclone -> NumberFormat -> NumberDecimalDigits = 4;
// Displays the properties of the DTFI and NFI instances associated with the original and with the clone.
Console::WriteLine(S"DTFI/NFI PROPERTY\tORIGINAL\tMODIFIED CLONE");
Console::WriteLine(S"DTFI.AMDesignator\t{0}\t\t{1}", myCI -> DateTimeFormat -> AMDesignator, myCIclone -> DateTimeFormat -> AMDesignator);
Console::WriteLine(S"DTFI.DateSeparator\t{0}\t\t{1}", myCI -> DateTimeFormat -> DateSeparator, myCIclone -> DateTimeFormat -> DateSeparator);
Console::WriteLine(S"NFI.CurrencySymbol\t{0}\t\t{1}", myCI -> NumberFormat -> CurrencySymbol, myCIclone -> NumberFormat -> CurrencySymbol);
Console::WriteLine(S"NFI.NumberDecimalDigits\t{0}\t\t{1}", __box(myCI -> NumberFormat -> NumberDecimalDigits), __box(myCIclone -> NumberFormat -> NumberDecimalDigits));
}
/*
This code produces the following output.
DTFI/NFI PROPERTY ORIGINAL MODIFIED CLONE
DTFI.AMDesignator AM a.m.
DTFI.DateSeparator / -
NFI.CurrencySymbol $ USD
NFI.NumberDecimalDigits 2 4
*/
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
参照
CultureInfo クラス | CultureInfo メンバ | System.Globalization 名前空間 | Object