本文整理汇总了C#中System.Globalization.CultureInfo.MemberwiseClone方法的典型用法代码示例。如果您正苦于以下问题:C# CultureInfo.MemberwiseClone方法的具体用法?C# CultureInfo.MemberwiseClone怎么用?C# CultureInfo.MemberwiseClone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Globalization.CultureInfo
的用法示例。
在下文中一共展示了CultureInfo.MemberwiseClone方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReadOnly
public static CultureInfo ReadOnly(CultureInfo ci)
{
if (ci == null)
{
throw new ArgumentNullException("ci");
}
Contract.Ensures(Contract.Result<CultureInfo>() != null);
Contract.EndContractBlock();
if (ci.IsReadOnly)
{
return (ci);
}
CultureInfo newInfo = (CultureInfo)(ci.MemberwiseClone());
if (!ci.IsNeutralCulture)
{
//If this is exactly our type, we can make certain optimizations so that we don't allocate NumberFormatInfo or DTFI unless
//they've already been allocated. If this is a derived type, we'll take a more generic codepath.
if (!ci.m_isInherited)
{
if (ci.dateTimeInfo != null)
{
newInfo.dateTimeInfo = DateTimeFormatInfo.ReadOnly(ci.dateTimeInfo);
}
if (ci.numInfo != null)
{
newInfo.numInfo = NumberFormatInfo.ReadOnly(ci.numInfo);
}
}
else
{
newInfo.DateTimeFormat = DateTimeFormatInfo.ReadOnly(ci.DateTimeFormat);
newInfo.NumberFormat = NumberFormatInfo.ReadOnly(ci.NumberFormat);
}
}
if (ci.textInfo != null)
{
newInfo.textInfo = TextInfo.ReadOnly(ci.textInfo);
}
if (ci.calendar != null)
{
newInfo.calendar = Calendar.ReadOnly(ci.calendar);
}
// Don't set the read-only flag too early.
// We should set the read-only flag here. Otherwise, info.DateTimeFormat will not be able to set.
newInfo.m_isReadOnly = true;
return (newInfo);
}
示例2: ReadOnly
public static CultureInfo ReadOnly(CultureInfo ci)
{
if (ci == null)
{
throw new ArgumentNullException("ci");
}
if (ci.IsReadOnly)
{
return ci;
}
CultureInfo info = (CultureInfo) ci.MemberwiseClone();
if (!ci.IsNeutralCulture)
{
if (!ci.m_isInherited)
{
if (ci.dateTimeInfo != null)
{
info.dateTimeInfo = DateTimeFormatInfo.ReadOnly(ci.dateTimeInfo);
}
if (ci.numInfo != null)
{
info.numInfo = NumberFormatInfo.ReadOnly(ci.numInfo);
}
}
else
{
info.DateTimeFormat = DateTimeFormatInfo.ReadOnly(ci.DateTimeFormat);
info.NumberFormat = NumberFormatInfo.ReadOnly(ci.NumberFormat);
}
}
if (ci.textInfo != null)
{
info.textInfo = System.Globalization.TextInfo.ReadOnly(ci.textInfo);
}
if (ci.calendar != null)
{
info.calendar = System.Globalization.Calendar.ReadOnly(ci.calendar);
}
info.m_isReadOnly = true;
return info;
}
示例3: ReadOnly
/// <include file='doc\CultureInfo.uex' path='docs/doc[@for="CultureInfo.ReadOnly"]/*' />
public static CultureInfo ReadOnly(CultureInfo ci) {
if (ci == null) {
throw new ArgumentNullException("ci");
}
if (ci.IsReadOnly) {
return (ci);
}
CultureInfo info = (CultureInfo)(ci.MemberwiseClone());
//If this is exactly our type, we can make certain optimizations so that we don't allocate NumberFormatInfo or DTFI unless
//they've already been allocated. If this is a derived type, we'll take a more generic codepath.
if (ci.GetType()==typeof(CultureInfo)) {
if (ci.dateTimeInfo != null) {
info.dateTimeInfo = DateTimeFormatInfo.ReadOnly(ci.dateTimeInfo);
}
if (ci.numInfo != null) {
info.numInfo = NumberFormatInfo.ReadOnly(ci.numInfo);
}
} else {
info.DateTimeFormat = DateTimeFormatInfo.ReadOnly(ci.DateTimeFormat);
info.NumberFormat = NumberFormatInfo.ReadOnly(ci.NumberFormat);
}
// Don't set the read-only flag too early.
// We should set the read-only flag here. Otherwise, info.DateTimeFormat will not be able to set.
info.m_isReadOnly = true;
return (info);
}
示例4: ReadOnly
// Wrap a culture information object to make it read-only.
public static CultureInfo ReadOnly(CultureInfo ci)
{
if(ci == null)
{
throw new ArgumentNullException("ci");
}
if(ci.IsReadOnly)
{
return ci;
}
else
{
CultureInfo culture = (CultureInfo)(ci.MemberwiseClone());
culture.readOnly = true;
return culture;
}
}