InheritanceAttribute.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / ComponentModel / Design / InheritanceAttribute.cs / 1305376 / InheritanceAttribute.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

/* 
 */ 
namespace System.ComponentModel {
 
    using System.Security.Permissions;

    /// 
    ///    Marks instances of objects that are inherited from their base class. This 
    ///       class cannot be inherited.
    ///  
    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event)] 
    public sealed class InheritanceAttribute : Attribute {
 
        private readonly InheritanceLevel inheritanceLevel;

        /// 
        ///     
        ///       Specifies that the component is inherited. This field is
        ///       read-only. 
        ///     
        /// 
        public static readonly InheritanceAttribute Inherited = new InheritanceAttribute(InheritanceLevel.Inherited); 

        /// 
        ///    
        ///       Specifies that 
        ///       the component is inherited and is read-only. This field is
        ///       read-only. 
        ///     
        /// 
        public static readonly InheritanceAttribute InheritedReadOnly = new InheritanceAttribute(InheritanceLevel.InheritedReadOnly); 

        /// 
        ///    
        ///       Specifies that the component is not inherited. This field is 
        ///       read-only.
        ///     
        ///  
        public static readonly InheritanceAttribute NotInherited = new InheritanceAttribute(InheritanceLevel.NotInherited);
 
        /// 
        ///    
        ///       Specifies the default value for
        ///       the InheritanceAttribute as NotInherited. 
        ///    
        ///  
        public static readonly InheritanceAttribute Default = NotInherited; 

        ///  
        /// Initializes a new instance of the System.ComponentModel.Design.InheritanceAttribute
        /// class.
        /// 
        public InheritanceAttribute() { 
            inheritanceLevel = Default.inheritanceLevel;
        } 
 
        /// 
        /// Initializes a new instance of the System.ComponentModel.Design.InheritanceAttribute class 
        ///    with the specified inheritance
        ///    level.
        /// 
        public InheritanceAttribute(InheritanceLevel inheritanceLevel) { 
            this.inheritanceLevel = inheritanceLevel;
        } 
 
        /// 
        ///     
        ///       Gets or sets
        ///       the current inheritance level stored in this attribute.
        ///    
        ///  
        public InheritanceLevel InheritanceLevel {
            get { 
                return inheritanceLevel; 
            }
        } 

        /// 
        ///    
        ///       Override to test for equality. 
        ///    
        ///  
        public override bool Equals(object value) { 
            if (value == this) {
                return true; 
            }

            if (!(value is InheritanceAttribute)) {
                return false; 
            }
 
            InheritanceLevel valueLevel = ((InheritanceAttribute)value).InheritanceLevel; 
            return (valueLevel == inheritanceLevel);
        } 

        /// 
        ///    
        ///       Returns the hashcode for this object. 
        ///    
        ///  
        public override int GetHashCode() { 
            return base.GetHashCode();
        } 

        /// 
        ///    
        ///       Gets whether this attribute is the default. 
        ///    
        ///  
        public override bool IsDefaultAttribute() { 
            return (this.Equals(Default));
        } 

        /// 
        ///    
        ///       Converts this attribute to a string. 
        ///    
        ///  
        public override string ToString() { 
            return TypeDescriptor.GetConverter(typeof(InheritanceLevel)).ConvertToString(InheritanceLevel);
        } 
    }
}


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK