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
- TreeNodeStyleCollection.cs
- SweepDirectionValidation.cs
- FontWeightConverter.cs
- TransportSecurityProtocol.cs
- OrderedEnumerableRowCollection.cs
- SectionVisual.cs
- CleanUpVirtualizedItemEventArgs.cs
- NativeRightsManagementAPIsStructures.cs
- DropSourceBehavior.cs
- DataSourceConverter.cs
- HwndMouseInputProvider.cs
- TcpWorkerProcess.cs
- IdnMapping.cs
- IgnoreFileBuildProvider.cs
- GridViewDeleteEventArgs.cs
- ActiveXSite.cs
- DependencyPropertyConverter.cs
- CodeTypeMemberCollection.cs
- ProcessHost.cs
- ScrollChrome.cs
- NameValuePair.cs
- WebPartAuthorizationEventArgs.cs
- DirectoryGroupQuery.cs
- WeakReferenceKey.cs
- XamlRtfConverter.cs
- CompilerErrorCollection.cs
- DivideByZeroException.cs
- ClientScriptItem.cs
- IIS7WorkerRequest.cs
- UserPreferenceChangedEventArgs.cs
- NumberFunctions.cs
- ObjectContextServiceProvider.cs
- SqlTrackingQuery.cs
- BindingNavigator.cs
- NetworkInterface.cs
- XmlSubtreeReader.cs
- FrameworkTemplate.cs
- RepeatButton.cs
- CacheHelper.cs
- CaretElement.cs
- StickyNote.cs
- DefaultShape.cs
- CodeAccessSecurityEngine.cs
- VectorCollectionConverter.cs
- dsa.cs
- LineServices.cs
- NumericUpDownAccelerationCollection.cs
- SafeCertificateContext.cs
- WsatStrings.cs
- BinaryObjectInfo.cs
- GeometryModel3D.cs
- IndexerNameAttribute.cs
- GlyphShapingProperties.cs
- MetadataPropertyCollection.cs
- EdmComplexTypeAttribute.cs
- PersonalizationStateInfo.cs
- FilteredAttributeCollection.cs
- RichTextBoxAutomationPeer.cs
- Parsers.cs
- DNS.cs
- BindingContext.cs
- DbProviderFactory.cs
- FontFamilyValueSerializer.cs
- SafeWaitHandle.cs
- SchemaNamespaceManager.cs
- TextBlockAutomationPeer.cs
- BaseCAMarshaler.cs
- SettingsPropertyNotFoundException.cs
- NativeMethods.cs
- PropertyValueChangedEvent.cs
- HttpServerVarsCollection.cs
- ResourceReferenceExpression.cs
- EntityDataSourceView.cs
- SparseMemoryStream.cs
- TextRange.cs
- RecognitionEventArgs.cs
- PreservationFileWriter.cs
- TreeNode.cs
- XmlNodeList.cs
- CodeDOMUtility.cs
- PropertyTabChangedEvent.cs
- LinkClickEvent.cs
- TextRenderingModeValidation.cs
- MDIClient.cs
- ImmutableCollection.cs
- SafeThemeHandle.cs
- PostBackTrigger.cs
- QuaternionKeyFrameCollection.cs
- HtmlInputControl.cs
- UdpDiscoveryEndpointElement.cs
- PropertyChangeTracker.cs
- InkCollectionBehavior.cs
- UserControlParser.cs
- TraceHandler.cs
- DocobjHost.cs
- LoginNameDesigner.cs
- AdPostCacheSubstitution.cs
- AdornerLayer.cs
- VisualStateChangedEventArgs.cs
- Pen.cs