Udostępnij za pośrednictwem


ReadOnlyAttribute Klasa

Definicja

Określa, czy właściwość ta atrybut jest powiązana z jest tylko do odczytu, czy tylko do odczytu/zapisu. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
ReadOnlyAttribute
Atrybuty

Przykłady

Poniższy przykład kodu oznacza właściwość jako tylko do odczytu.

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

W następnym przykładzie kodu pokazano, jak sprawdzić wartość ReadOnlyAttribute elementu dla MyPropertyelementu . Najpierw kod pobiera PropertyDescriptorCollection obiekt ze wszystkimi właściwościami obiektu. Następnie indeksuje do elementu PropertyDescriptorCollection , aby pobrać MyPropertyelement . Następnie zwraca atrybuty tej właściwości i zapisuje je w zmiennej atrybutów.

W przykładzie przedstawiono dwa różne sposoby sprawdzania wartości elementu ReadOnlyAttribute. W drugim fragmentze kodu przykład wywołuje metodę Equals . W ostatnim fragmentcie kodu w przykładzie użyto IsReadOnly właściwości do sprawdzenia wartości.

// 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

Jeśli oznaczono klasę przy użyciu klasy ReadOnlyAttribute, użyj poniższego przykładu kodu, aby sprawdzić wartość.

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

Uwagi

Nie można zmienić elementów członkowskich oznaczonych zestawem ReadOnlyAttribute lub true nie mają Set metody. Elementy członkowskie, które nie mają tego atrybutu lub które są oznaczone zestawem ReadOnlyAttribute do false odczytu/zapisu, i można je zmienić. Wartość domyślna to No.

Ważne

Klasa PropertyDescriptor wymusza ReadOnlyAttribute element w środowisku projektowym i w czasie wykonywania. Gdy oznaczysz właściwość z ustawioną ReadOnlyAttribute wartością true, wartość tego atrybutu jest ustawiona na stały element członkowski Yes. Dla właściwości oznaczonej wartością ustawioną na ReadOnlyAttributefalsewartość , wartość to No. W związku z tym, jeśli chcesz sprawdzić wartość tego atrybutu w kodzie, musisz określić atrybut jako ReadOnlyAttribute.Yes lub ReadOnlyAttribute.No.

Aby uzyskać więcej informacji, zobacz Atrybuty.

Konstruktory

ReadOnlyAttribute(Boolean)

Inicjuje nowe wystąpienie klasy ReadOnlyAttribute.

Pola

Default

Określa wartość domyślną elementu ReadOnlyAttribute, czyli No właściwość, do której jest powiązany ten atrybut, to odczyt/zapis. To static pole jest tylko do odczytu.

No

Określa, że właściwość, do której jest powiązany ten atrybut, jest odczyt/zapis i można go modyfikować. To static pole jest tylko do odczytu.

Yes

Określa, że właściwość, do której jest powiązany ten atrybut, jest tylko do odczytu i nie można jej modyfikować w Eksploratorze serwera. To static pole jest tylko do odczytu.

Właściwości

IsReadOnly

Pobiera wartość wskazującą, czy właściwość jest powiązana z tym atrybutem, jest tylko do odczytu.

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego elementu Attribute.

(Odziedziczone po Attribute)

Metody

Equals(Object)

Wskazuje, czy to wystąpienie oraz określony obiekt są równe.

GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
IsDefaultAttribute()

Określa, czy ten atrybut jest domyślny.

IsDefaultAttribute()

W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

W przypadku zastąpienia w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie obiektu, którego można użyć do pobrania informacji o typie interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też