ReadOnlyAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje, zda je vlastnost, ke které je tento atribut vázán, je jen pro čtení nebo pro čtení/zápis. Tuto třídu nelze zdědit.
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
- Dědičnost
- Atributy
Příklady
Následující příklad kódu označuje vlastnost jen pro čtení.
[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
Následující příklad kódu ukazuje, jak zkontrolovat hodnotu ReadOnlyAttribute pro MyProperty. Nejprve kód získá PropertyDescriptorCollection všechny vlastnosti objektu. V dalším kroku indexuje do získání PropertyDescriptorCollectionMyProperty. Pak vrátí atributy pro tuto vlastnost a uloží je do proměnné atributů.
Příklad představuje dva různé způsoby kontroly hodnoty ReadOnlyAttribute. Ve druhém fragmentu kódu volá příklad metodu Equals . V posledním fragmentu kódu příklad používá IsReadOnly vlastnost ke kontrole hodnoty.
// 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
Pokud jste označili třídu pomocí ReadOnlyAttributepříkazu , pomocí následujícího příkladu kódu zkontrolujte hodnotu.
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
Poznámky
Členy, které jsou označené nastavenou ReadOnlyAttribute sadou true nebo které nemají metodu Set , nelze změnit. Členové, kteří nemají tento atribut nebo jsou označeny nastavenou nastavenou ReadOnlyAttribute na false čtení a zápis, a lze je změnit. Výchozí hodnota je No.
Důležité
Třída PropertyDescriptor vynucuje ReadOnlyAttribute v návrhovém prostředí a za běhu. Když označíte vlastnost nastavenou ReadOnlyAttribute na truehodnotu , hodnota tohoto atributu je nastavena na konstantní člen Yes. Pro vlastnost označenou nastavenou ReadOnlyAttribute na falsehodnotu je Nohodnota . Proto pokud chcete zkontrolovat hodnotu tohoto atributu v kódu, musíte zadat atribut jako ReadOnlyAttribute.Yes nebo ReadOnlyAttribute.No.
Další informace naleznete v tématu Atributy.
Konstruktory
| Name | Description |
|---|---|
| ReadOnlyAttribute(Boolean) |
Inicializuje novou instanci ReadOnlyAttribute třídy. |
Pole
| Name | Description |
|---|---|
| Default |
Určuje výchozí hodnotu pro ReadOnlyAttributehodnotu , která je (to znamená No , vlastnost, ke které je tento atribut vázán, je vázán na čtení/zápis). Toto |
| No |
Určuje, že vlastnost, ke které je tento atribut vázán, je určena pro čtení/zápis a lze jej upravit. Toto |
| Yes |
Určuje, že vlastnost, ke které je tento atribut vázán, je určena jen pro čtení a nelze ji změnit v průzkumníku serveru. Toto |
Vlastnosti
| Name | Description |
|---|---|
| IsReadOnly |
Získá hodnotu určující, zda vlastnost, ke které je tento atribut vázán, je jen pro čtení. |
| TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno od Attribute) |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda tato instance a zadaný objekt jsou rovny. |
| GetHashCode() |
Vrátí kód hash pro tuto instanci. |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IsDefaultAttribute() |
Určuje, zda je tento atribut výchozí. |
| Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která určuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. (Zděděno od Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní. (Zděděno od Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). (Zděděno od Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Poskytuje přístup k vlastnostem a metodám vystaveným objektem. (Zděděno od Attribute) |