Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Serialization / System / Text / SurrogateChar.cs / 1305376 / SurrogateChar.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Text
{
using System.Globalization;
using System.Runtime.Serialization; // Just for SR
struct SurrogateChar
{
char lowChar;
char highChar;
public const int MinValue = 0x10000;
public const int MaxValue = MinValue + (1 << 20) - 1;
const char surHighMin = (char) 0xd800;
const char surHighMax = (char) 0xdbff;
const char surLowMin = (char) 0xdc00;
const char surLowMax = (char) 0xdfff;
public SurrogateChar(int ch)
{
if (ch < MinValue || ch > MaxValue)
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.XmlInvalidSurrogate, ch.ToString("X", CultureInfo.InvariantCulture)), "ch"));
const int mask = ((1 << 10) - 1);
this.lowChar = (char) (((ch - MinValue) & mask) + surLowMin);
this.highChar = (char) ((((ch - MinValue) >> 10) & mask) + surHighMin);
}
public SurrogateChar(char lowChar, char highChar)
{
if (lowChar < surLowMin || lowChar > surLowMax)
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.XmlInvalidLowSurrogate, ((int)lowChar).ToString("X", CultureInfo.InvariantCulture)), "lowChar"));
if (highChar < surHighMin || highChar > surHighMax)
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.XmlInvalidHighSurrogate, ((int)highChar).ToString("X", CultureInfo.InvariantCulture)), "highChar"));
this.lowChar = lowChar;
this.highChar = highChar;
}
public char LowChar { get { return lowChar; } }
public char HighChar { get { return highChar; } }
public int Char
{
get
{
return (lowChar - surLowMin) | ((highChar - surHighMin) << 10) + MinValue;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Version.cs
- ServiceOperationDetailViewControl.cs
- EdmSchemaAttribute.cs
- StickyNote.cs
- WindowsEditBox.cs
- WindowsFormsHostPropertyMap.cs
- ProxyElement.cs
- JpegBitmapDecoder.cs
- RootBuilder.cs
- shaperfactory.cs
- ProjectionCamera.cs
- _SSPISessionCache.cs
- NavigationExpr.cs
- TextTreeDeleteContentUndoUnit.cs
- DataSourceViewSchemaConverter.cs
- SystemMulticastIPAddressInformation.cs
- MetadataCache.cs
- autovalidator.cs
- UserInitiatedNavigationPermission.cs
- ToolStripButton.cs
- ObjectAnimationBase.cs
- ServiceX509SecurityTokenProvider.cs
- PersonalizationDictionary.cs
- SqlConnectionStringBuilder.cs
- Polygon.cs
- ClientConfigurationHost.cs
- BaseServiceProvider.cs
- PopupRootAutomationPeer.cs
- AllMembershipCondition.cs
- ToolStripDropDownClosingEventArgs.cs
- XmlRawWriter.cs
- PageHandlerFactory.cs
- AttachedPropertiesService.cs
- Serializer.cs
- HtmlLink.cs
- SafeBitVector32.cs
- AuthenticationService.cs
- ConfigurationManagerHelper.cs
- WebServiceFaultDesigner.cs
- Comparer.cs
- SpecularMaterial.cs
- SafeCloseHandleCritical.cs
- ServiceEndpointElement.cs
- RenderingBiasValidation.cs
- UInt32Storage.cs
- SHA384Cng.cs
- FileInfo.cs
- TextServicesDisplayAttributePropertyRanges.cs
- RunInstallerAttribute.cs
- SecureStringHasher.cs
- LinkedList.cs
- HttpCookiesSection.cs
- ScriptControlDescriptor.cs
- ScrollBarRenderer.cs
- DocumentXmlWriter.cs
- VisualBasicSettingsHandler.cs
- ValueUtilsSmi.cs
- EntityDataSourceWrapperCollection.cs
- _LazyAsyncResult.cs
- GenerateScriptTypeAttribute.cs
- base64Transforms.cs
- XmlSchemaInclude.cs
- ApplicationId.cs
- SecurityBindingElementImporter.cs
- FixedSOMLineCollection.cs
- ResourceReferenceKeyNotFoundException.cs
- AnalyzedTree.cs
- NamespaceInfo.cs
- ConvertTextFrag.cs
- HttpResponseBase.cs
- HttpContext.cs
- HotSpotCollection.cs
- Operators.cs
- XmlSchemaElement.cs
- AppSettingsExpressionBuilder.cs
- TextTreeRootNode.cs
- NetDataContractSerializer.cs
- StringComparer.cs
- BamlBinaryWriter.cs
- ServiceNameElement.cs
- OneWayElement.cs
- TemplateManager.cs
- ArrangedElement.cs
- Peer.cs
- LogEntryDeserializer.cs
- UniqueSet.cs
- VScrollBar.cs
- DesignerAutoFormatStyle.cs
- ResourceManager.cs
- DbConnectionStringCommon.cs
- EntityKey.cs
- TypedRowHandler.cs
- XmlSchemaImport.cs
- PathFigureCollection.cs
- Calendar.cs
- StoryFragments.cs
- NetworkAddressChange.cs
- ServiceNotStartedException.cs
- HtmlProps.cs
- RowsCopiedEventArgs.cs