Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / ComponentModel / DefaultValueAttribute.cs / 1 / DefaultValueAttribute.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.ComponentModel {
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Runtime.Serialization.Formatters;
using System.Security.Permissions;
///
/// Specifies the default value for a property.
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1019:DefineAccessorsForAttributeArguments")]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]
[AttributeUsage(AttributeTargets.All)]
public class DefaultValueAttribute : Attribute {
///
/// This is the default value.
///
private object value;
///
/// Initializes a new instance of the class, converting the
/// specified value to the
/// specified type, and using the U.S. English culture as the
/// translation
/// context.
///
public DefaultValueAttribute(Type type, string value) {
// The try/catch here is because attributes should never throw exceptions. We would fail to
// load an otherwise normal class.
try {
this.value = TypeDescriptor.GetConverter(type).ConvertFromInvariantString(value);
}
catch {
Debug.Fail("Default value attribute of type " + type.FullName + " threw converting from the string '" + value + "'.");
}
}
///
/// Initializes a new instance of the class using a Unicode
/// character.
///
public DefaultValueAttribute(char value) {
this.value = value;
}
///
/// Initializes a new instance of the class using an 8-bit unsigned
/// integer.
///
public DefaultValueAttribute(byte value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a 16-bit signed
/// integer.
///
public DefaultValueAttribute(short value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a 32-bit signed
/// integer.
///
public DefaultValueAttribute(int value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a 64-bit signed
/// integer.
///
public DefaultValueAttribute(long value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a
/// single-precision floating point
/// number.
///
public DefaultValueAttribute(float value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a
/// double-precision floating point
/// number.
///
public DefaultValueAttribute(double value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a
/// value.
///
public DefaultValueAttribute(bool value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a .
///
public DefaultValueAttribute(string value) {
this.value = value;
}
///
/// Initializes a new instance of the
/// class.
///
public DefaultValueAttribute(object value) {
this.value = value;
}
///
///
/// Gets the default value of the property this
/// attribute is
/// bound to.
///
///
public virtual object Value {
get {
return value;
}
}
public override bool Equals(object obj) {
if (obj == this) {
return true;
}
DefaultValueAttribute other = obj as DefaultValueAttribute;
if (other != null) {
if (Value != null) {
return Value.Equals(other.Value);
}
else {
return (other.Value == null);
}
}
return false;
}
public override int GetHashCode() {
return base.GetHashCode();
}
protected void SetValue(object value) {
this.value = value;
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SynchronousChannelMergeEnumerator.cs
- RadioButtonFlatAdapter.cs
- TreeNodeBinding.cs
- DocobjHost.cs
- SQLByteStorage.cs
- FilterInvalidBodyAccessException.cs
- AsyncCompletedEventArgs.cs
- StandardOleMarshalObject.cs
- DLinqColumnProvider.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- VectorAnimation.cs
- CodeEntryPointMethod.cs
- WpfXamlLoader.cs
- SQLChars.cs
- GlyphRun.cs
- FixedSOMFixedBlock.cs
- ErrorWrapper.cs
- WebPartMenuStyle.cs
- SafeCryptoHandles.cs
- DesignerVerbCollection.cs
- Drawing.cs
- SqlUserDefinedAggregateAttribute.cs
- OracleCommandSet.cs
- Selection.cs
- Label.cs
- OdbcDataReader.cs
- mansign.cs
- NullRuntimeConfig.cs
- SortDescription.cs
- FramingFormat.cs
- QueryOptionExpression.cs
- VisualStyleElement.cs
- MergePropertyDescriptor.cs
- SystemMulticastIPAddressInformation.cs
- JsonWriter.cs
- DataSourceView.cs
- Variant.cs
- DataGridViewEditingControlShowingEventArgs.cs
- UpdateInfo.cs
- IssuanceTokenProviderState.cs
- ValidationError.cs
- _Connection.cs
- AnnotationResourceChangedEventArgs.cs
- ReadOnlyState.cs
- columnmapkeybuilder.cs
- Item.cs
- URLIdentityPermission.cs
- InputChannelAcceptor.cs
- SizeAnimationBase.cs
- CompositeDesignerAccessibleObject.cs
- TextServicesLoader.cs
- BitmapEffectRenderDataResource.cs
- BaseDataListActionList.cs
- TablePatternIdentifiers.cs
- CreateParams.cs
- StaticResourceExtension.cs
- GlyphCache.cs
- UdpTransportSettings.cs
- AttachmentCollection.cs
- ResourcePool.cs
- EventWaitHandle.cs
- HMACSHA256.cs
- EnumerableCollectionView.cs
- PreviewKeyDownEventArgs.cs
- DefaultSection.cs
- ObjectReferenceStack.cs
- XmlSchemaResource.cs
- DesignerAutoFormat.cs
- SymbolEqualComparer.cs
- TypeValidationEventArgs.cs
- ExpressionVisitorHelpers.cs
- StackSpiller.Bindings.cs
- XmlSchemaValidationException.cs
- ActiveXContainer.cs
- LocalizationParserHooks.cs
- InheritedPropertyChangedEventArgs.cs
- FlowDocumentPaginator.cs
- TextEditorThreadLocalStore.cs
- Crc32Helper.cs
- LoadRetryStrategyFactory.cs
- Exception.cs
- ProtocolsConfiguration.cs
- TableItemPatternIdentifiers.cs
- TemplateContainer.cs
- HttpProfileBase.cs
- ServiceProviders.cs
- FtpCachePolicyElement.cs
- SecurityContext.cs
- WebPartMenuStyle.cs
- PropertyToken.cs
- wmiprovider.cs
- InternalDispatchObject.cs
- NameValuePermission.cs
- CodeIndexerExpression.cs
- AliasGenerator.cs
- DataObjectPastingEventArgs.cs
- IPAddressCollection.cs
- ListMarkerLine.cs
- PreApplicationStartMethodAttribute.cs
- Main.cs