Condividi tramite


ReadOnlyAttribute Classe

Definizione

Specifica se la proprietà a cui è associato questo attributo è di sola lettura o di lettura/scrittura. La classe non può essere ereditata.

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
Ereditarietà
ReadOnlyAttribute
Attributi

Esempio

Nell'esempio di codice seguente viene contrassegnata una proprietà come sola lettura.

   [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

Nell'esempio di codice successivo viene illustrato come controllare il valore dell'oggetto ReadOnlyAttribute per MyProperty. Prima di tutto, il codice ottiene un PropertyDescriptorCollection con tutte le proprietà per l'oggetto. Successivamente, indicizza nell'oggetto PropertyDescriptorCollection per ottenere MyProperty. Restituisce quindi gli attributi per questa proprietà e li salva nella variabile attributi.

L'esempio presenta due modi diversi per controllare il valore di ReadOnlyAttribute. Nel secondo frammento di codice, nell'esempio viene chiamato il Equals metodo . Nell'ultimo frammento di codice, nell'esempio viene usata la IsReadOnly proprietà per controllare il valore.

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

Se è stata contrassegnata una classe con , usare l'esempio ReadOnlyAttributedi codice seguente per controllare il valore.

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

Commenti

I membri contrassegnati con il ReadOnlyAttribute set su true o che non hanno un Set metodo non possono essere modificati. I membri che non dispongono di questo attributo o contrassegnati con il ReadOnlyAttribute set su false sono di lettura/scrittura e possono essere modificati. Il valore predefinito è No.

Importante

La PropertyDescriptor classe applica l'oggetto ReadOnlyAttribute nell'ambiente di progettazione e in fase di esecuzione. Quando si contrassegna una proprietà con l'oggetto ReadOnlyAttribute impostato su true, il valore di questo attributo è impostato sul membro Yescostante . Per una proprietà contrassegnata con l'oggetto ReadOnlyAttribute impostato su false, il valore è No. Pertanto, quando si vuole controllare il valore di questo attributo nel codice, è necessario specificare l'attributo come ReadOnlyAttribute.Yes o ReadOnlyAttribute.No.

Per altre informazioni, vedere Attributi.

Costruttori

ReadOnlyAttribute(Boolean)

Inizializza una nuova istanza della classe ReadOnlyAttribute.

Campi

Default

Specifica il valore predefinito per l'attributo ReadOnlyAttribute, che è No. Questo significa che la proprietà a cui è associato questo attributo è di lettura/scrittura. Questo campo static è di sola lettura.

No

Specifica che la proprietà a cui è associato questo attributo è di lettura/scrittura e può essere modificata. Questo campo static è di sola lettura.

Yes

Consente di specificare che la proprietà a cui è associato questo attributo è di sola lettura e non può essere modificata in Esplora server. Questo campo static è di sola lettura.

Proprietà

IsReadOnly

Ottiene un valore che indica se la proprietà a cui è associato questo attributo è di sola lettura.

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)

Metodi

Equals(Object)

Indica se questa istanza e un oggetto specificato sono uguali.

GetHashCode()

Restituisce il codice hash per l'istanza.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

Determina se questo attributo è predefinito.

IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)

Si applica a

Vedi anche