Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / ComponentModel / DecimalConverter.cs / 1 / DecimalConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.ComponentModel { using Microsoft.Win32; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Runtime.InteropServices; using System.Runtime.Remoting; using System.Runtime.Serialization.Formatters; using System.Security.Permissions; ////// [HostProtection(SharedState = true)] public class DecimalConverter : BaseNumberConverter { ///Provides a type converter to convert ////// objects to and from various /// other representations. /// Determines whether this editor will attempt to convert hex (0x or #) strings /// internal override bool AllowHex { get { return false; } } ////// The Type this converter is targeting (e.g. Int16, UInt32, etc.) /// internal override Type TargetType { get { return typeof(Decimal); } } ////// public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { if (destinationType == typeof(InstanceDescriptor)) { return true; } return base.CanConvertTo(context, destinationType); } ///Gets a value indicating whether this converter can /// convert an object to the given destination type using the context. ////// Converts the given object to another type. The most common types to convert /// are to and from a string object. The default implementation will make a call /// to ToString on the object if the object is valid and if the destination /// type is string. If this cannot convert to the desitnation type, this will /// throw a NotSupportedException. /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == null) { throw new ArgumentNullException("destinationType"); } if (destinationType == typeof(InstanceDescriptor) && value is Decimal) { object[] args = new object[] { Decimal.GetBits((Decimal)value) }; MemberInfo member = typeof(Decimal).GetConstructor(new Type[] {typeof(Int32[])}); Debug.Assert(member != null, "Could not convert decimal to member. Did someone change method name / signature and not update DecimalConverter?"); if (member != null) { return new InstanceDescriptor(member, args); } else { return null; } } return base.ConvertTo(context, culture, value, destinationType); } ////// Convert the given value to a string using the given radix /// internal override object FromString(string value, int radix) { return Convert.ToDecimal(value, CultureInfo.CurrentCulture); } ////// Convert the given value to a string using the given formatInfo /// internal override object FromString(string value, NumberFormatInfo formatInfo) { return Decimal.Parse(value, NumberStyles.Float, formatInfo); } ////// Convert the given value to a string using the given CultureInfo /// internal override object FromString(string value, CultureInfo culture){ return Decimal.Parse(value, culture); } ////// Convert the given value from a string using the given formatInfo /// internal override string ToString(object value, NumberFormatInfo formatInfo) { return ((Decimal)value).ToString("G", formatInfo); } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SignerInfo.cs
- Mappings.cs
- ConstNode.cs
- PnrpPermission.cs
- ResourcesChangeInfo.cs
- TimeSpanStorage.cs
- MasterPageBuildProvider.cs
- TextRangeBase.cs
- SingleStorage.cs
- DesignTimeVisibleAttribute.cs
- DesignTimeType.cs
- SmiEventSink.cs
- DataGridViewTextBoxCell.cs
- SessionEndingCancelEventArgs.cs
- ProfileParameter.cs
- SqlErrorCollection.cs
- XmlSchemaInferenceException.cs
- TextMetrics.cs
- WebHeaderCollection.cs
- Part.cs
- SqlGatherConsumedAliases.cs
- HttpListenerRequest.cs
- FixedTextPointer.cs
- XsltException.cs
- GridViewRowPresenter.cs
- StateDesigner.LayoutSelectionGlyph.cs
- DiscreteKeyFrames.cs
- ContextMarshalException.cs
- SpecialFolderEnumConverter.cs
- StandardOleMarshalObject.cs
- ReferenceConverter.cs
- OracleConnection.cs
- PassportAuthenticationEventArgs.cs
- SweepDirectionValidation.cs
- ToolStripItemClickedEventArgs.cs
- MutableAssemblyCacheEntry.cs
- Int32Rect.cs
- SqlProfileProvider.cs
- SecurityTraceRecordHelper.cs
- Literal.cs
- TaiwanCalendar.cs
- ObjectHandle.cs
- PreloadHost.cs
- HTMLTextWriter.cs
- MenuItem.cs
- TypefaceMap.cs
- HttpCacheParams.cs
- TypeLibConverter.cs
- Converter.cs
- SqlUserDefinedTypeAttribute.cs
- InputQueue.cs
- BlockCollection.cs
- Rotation3D.cs
- XmlValidatingReader.cs
- SmiContextFactory.cs
- XmlQuerySequence.cs
- CorrelationRequestContext.cs
- Atom10FormatterFactory.cs
- DataGridViewComboBoxEditingControl.cs
- OleDbConnectionInternal.cs
- SQLSingle.cs
- GC.cs
- RankException.cs
- TemplateField.cs
- AspCompat.cs
- BasicExpressionVisitor.cs
- UnsafeNativeMethods.cs
- InkCollectionBehavior.cs
- Context.cs
- IgnoreSectionHandler.cs
- DockPanel.cs
- DefaultPrintController.cs
- PreservationFileReader.cs
- TargetFrameworkUtil.cs
- CryptoApi.cs
- _AuthenticationState.cs
- NegatedCellConstant.cs
- PointAnimationUsingPath.cs
- ObjectReaderCompiler.cs
- FindSimilarActivitiesVerb.cs
- NetStream.cs
- _OverlappedAsyncResult.cs
- EntityCommand.cs
- NetMsmqBinding.cs
- LifetimeServices.cs
- ListDictionary.cs
- InheritanceService.cs
- BamlLocalizationDictionary.cs
- ToolStripSeparatorRenderEventArgs.cs
- Color.cs
- SocketCache.cs
- ParameterElement.cs
- QuaternionConverter.cs
- ApplicationActivator.cs
- FrameworkContentElementAutomationPeer.cs
- Page.cs
- WebPartHeaderCloseVerb.cs
- EntityRecordInfo.cs
- TagPrefixAttribute.cs
- EncryptedType.cs