Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Attribute.IsDefaultAttribute-Methode: ()

 

Veröffentlicht: Oktober 2016

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public virtual bool IsDefaultAttribute()

Rückgabewert

Type: System.Boolean

true, wenn diese Instanz das Standardattribut für die Klasse ist, andernfalls false.

Gibt die standardmäßige Implementierung dieser Klasse false, und in der abgeleiteten Klasse sind aussagekräftig sind für diese Klasse implementiert werden muss.

Die Implementierung dieser Methode in einer abgeleiteten Klasse vergleicht der Wert dieser Instanz mit einem standard-Standardwert, dann gibt einen booleschen Wert, der angibt, ob der Wert dieser Instanz des Standardwerts entspricht. Des Standardwerts ist in der Regel als eine Konstante in der Implementierung oder programmgesteuert in einem Feld, das von der Implementierung verwendet gespeichert.

Das folgende Codebeispiel veranschaulicht die Verwendung von IsDefaultAttribute.

using System;
using System.Reflection;

namespace DefAttrCS 
{
    // An enumeration of animals. Start at 1 (0 = uninitialized).
    public enum Animal 
    {
        // Pets.
        Dog = 1,
        Cat,
        Bird,
    }

    // A custom attribute to allow a target to have a pet.
    public class AnimalTypeAttribute : Attribute 
    {
        // The constructor is called when the attribute is set.
        public AnimalTypeAttribute(Animal pet) 
        {
            thePet = pet;
        }

        // Provide a default constructor and make Dog the default.
        public AnimalTypeAttribute() 
        {
            thePet = Animal.Dog;
        }

        // Keep a variable internally ...
        protected Animal thePet;

        // .. and show a copy to the outside world.
        public Animal Pet 
        {
            get { return thePet; }
            set { thePet = Pet; }
        }

        // Override IsDefaultAttribute to return the correct response.
        public override bool IsDefaultAttribute() 
        {
            if (thePet == Animal.Dog)
                return true;

            return false;
        }
    }

    public class TestClass 
    {
        // Use the default constructor.
        [AnimalType]
        public void Method1()
        {}
    }

    class DemoClass 
    {
        static void Main(string[] args) 
        {
            // Get the class type to access its metadata.
            Type clsType = typeof(TestClass);
            // Get type information for the method.
            MethodInfo mInfo = clsType.GetMethod("Method1");
            // Get the AnimalType attribute for the method.
            AnimalTypeAttribute atAttr = 
                (AnimalTypeAttribute)Attribute.GetCustomAttribute(mInfo,
                typeof(AnimalTypeAttribute));
            // Check to see if the default attribute is applied.
            Console.WriteLine("The attribute {0} for method {1} in class {2}",
                atAttr.Pet, mInfo.Name, clsType.Name); 
            Console.WriteLine("{0} the default for the AnimalType attribute.", 
                atAttr.IsDefaultAttribute() ? "is" : "is not");
        }
    }
}

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: