ReadOnlyAttribute Osztály

Definíció

Azt adja meg, hogy az attribútumhoz kötött tulajdonság írásvédett vagy írási/írási. Ez az osztály nem örökölhető.

public ref class ReadOnlyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.All)]
public sealed class ReadOnlyAttribute : Attribute
public sealed class ReadOnlyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.All)>]
type ReadOnlyAttribute = class
    inherit Attribute
type ReadOnlyAttribute = class
    inherit Attribute
Public NotInheritable Class ReadOnlyAttribute
Inherits Attribute
Öröklődés
ReadOnlyAttribute
Attribútumok

Példák

Az alábbi példakód írásvédettként jelöl meg egy tulajdonságot.

   [ReadOnly(true)]
   int get()
   {
      // Insert code here.
      return 0;
   }
}
[ReadOnly(true)]
public int MyProperty =>
        // Insert code here.
        0;
Public ReadOnly Property MyProperty() As Integer
    Get
        ' Insert code here.
        Return 0
    End Get
End Property

A következő példakód bemutatja, hogyan ellenőrizheti a következő érték értékét ReadOnlyAttributeMyProperty. Először is a kód lekéri PropertyDescriptorCollection az objektum összes tulajdonságát. Ezután indexel a PropertyDescriptorCollection lekéréshez MyProperty. Ezután visszaadja a tulajdonság attribútumait, és menti őket az attribútumváltozóba.

A példa két különböző módszert mutat be az érték ellenőrzésére ReadOnlyAttribute. A második kódrészletben a példa meghívja a metódust Equals . Az utolsó kódrészletben a példa a IsReadOnly tulajdonságot használja az érték ellenőrzéséhez.

// Gets the attributes for the property.
AttributeCollection^ attributes = TypeDescriptor::GetProperties( this )[ "MyProperty" ]->Attributes;

// Checks to see whether the value of the ReadOnlyAttribute is Yes.
if ( attributes[ ReadOnlyAttribute::typeid ]->Equals( ReadOnlyAttribute::Yes ) )
{
   // Insert code here.
}

// This is another way to see whether the property is read-only.
ReadOnlyAttribute^ myAttribute = dynamic_cast<ReadOnlyAttribute^>(attributes[ ReadOnlyAttribute::typeid ]);
if ( myAttribute->IsReadOnly )
{
   // Insert code here.
}
// Gets the attributes for the property.
AttributeCollection attributes =
   TypeDescriptor.GetProperties(this)["MyProperty"].Attributes;

// Checks to see whether the value of the ReadOnlyAttribute is Yes.
if (attributes[typeof(ReadOnlyAttribute)].Equals(ReadOnlyAttribute.Yes))
{
    // Insert code here.
}

// This is another way to see whether the property is read-only.
ReadOnlyAttribute myAttribute =
   (ReadOnlyAttribute)attributes[typeof(ReadOnlyAttribute)];
if (myAttribute.IsReadOnly)
{
    // Insert code here.
}
' Gets the attributes for the property.
Dim attributes As AttributeCollection = _
    TypeDescriptor.GetProperties(Me)("MyProperty").Attributes

' Checks to see whether the value of the ReadOnlyAttribute is Yes.
If attributes(GetType(ReadOnlyAttribute)).Equals(ReadOnlyAttribute.Yes) Then
    ' Insert code here.
End If 

' This is another way to see whether the property is read-only.
Dim myAttribute As ReadOnlyAttribute = _
    CType(attributes(GetType(ReadOnlyAttribute)), ReadOnlyAttribute)
    
If myAttribute.IsReadOnly Then
    ' Insert code here.
End If

Ha az osztályt a ReadOnlyAttributekövetkezővel jelölte meg, az érték ellenőrzéséhez használja az alábbi kód példáját.

AttributeCollection^ attributes = TypeDescriptor::GetAttributes( MyProperty );
if ( attributes[ ReadOnlyAttribute::typeid ]->Equals( ReadOnlyAttribute::Yes ) )
{
   // Insert code here.
}
AttributeCollection attributes =
   TypeDescriptor.GetAttributes(MyProperty);
if (attributes[typeof(ReadOnlyAttribute)].Equals(ReadOnlyAttribute.Yes))
{
    // Insert code here.
}
Dim attributes As AttributeCollection = TypeDescriptor.GetAttributes(MyProperty)
If attributes(GetType(ReadOnlyAttribute)).Equals(ReadOnlyAttribute.Yes) Then
    ' Insert code here.
End If

Megjegyzések

Nem módosíthatók azok a tagok, amelyek a ReadOnlyAttribute megadott true értékre vannak jelölve, vagy amelyek nem rendelkeznek metódussal Set . Azok a tagok, amelyek nem rendelkeznek ezzel az attribútummal, vagy amelyek írási ReadOnlyAttribute /olvasási halmazsal false vannak megjelölve, módosíthatók. Az alapértelmezett érték a No.

Important

Az PropertyDescriptor osztály kikényszeríti a ReadOnlyAttribute tervezőkörnyezetben és futásidőben. Ha olyan tulajdonságot jelöl meg, amelynek értéke ReadOnlyAttribute a következő true, az attribútum értéke az állandó tag Yeslesz. A beállítással ReadOnlyAttributefalsemegjelölt tulajdonság esetében az érték a következő No. Ezért ha ellenőrizni szeretné ennek az attribútumnak az értékét a kódban, meg kell adnia az attribútumot ReadOnlyAttribute.YesReadOnlyAttribute.No.

További információ: Attribútumok.

Konstruktorok

Name Description
ReadOnlyAttribute(Boolean)

Inicializálja a ReadOnlyAttribute osztály új példányát.

Mezők

Name Description
Default

Megadja az alapértelmezett értéket a ReadOnlyAttribute( vagyis annak a tulajdonságnak, amelyhez No az attribútum írási/olvasási kötve van). Ez static a mező írásvédett.

No

Azt adja meg, hogy az attribútumhoz kötött tulajdonság írási/olvasási, és módosítható. Ez static a mező írásvédett.

Yes

Megadja, hogy az attribútumhoz kötött tulajdonság írásvédett, és a kiszolgálókezelőben nem módosítható. Ez static a mező írásvédett.

Tulajdonságok

Name Description
IsReadOnly

Beolvas egy értéket, amely jelzi, hogy az attribútumhoz kötött tulajdonság írásvédett-e.

TypeId

Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap.

(Öröklődés forrása Attribute)

Metódusok

Name Description
Equals(Object)

Azt jelzi, hogy ez a példány és egy megadott objektum egyenlő-e.

GetHashCode()

A példány kivonatkódját adja vissza.

GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsDefaultAttribute()

Meghatározza, hogy ez az attribútum-e az alapértelmezett érték.

Match(Object)

Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e.

(Öröklődés forrása Attribute)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

Name Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Névkészletet képez le a küldési azonosítók megfelelő készletére.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1).

(Öröklődés forrása Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz.

(Öröklődés forrása Attribute)

A következőre érvényes:

Lásd még