ReadOnlyAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, доступно ли свойство, с которым связан данный атрибут, только для чтения или для чтения и записи. Этот класс не наследуется.
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
- Наследование
- Атрибуты
Примеры
В следующем примере кода свойство помечает как доступное только для чтения.
[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
В следующем примере кода показано, как проверка значение ReadOnlyAttribute для MyProperty
. Во-первых, код получает со PropertyDescriptorCollection всеми свойствами объекта . Затем он индексирует в , PropertyDescriptorCollection чтобы получить MyProperty
. Затем он возвращает атрибуты для этого свойства и сохраняет их в переменной атрибутов.
В примере представлены два разных способа проверки значения ReadOnlyAttribute. Во втором фрагменте кода в примере вызывается Equals метод . В последнем фрагменте кода в примере используется IsReadOnly свойство для проверка значения.
// 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
Если вы пометили класс с ReadOnlyAttributeпомощью , используйте следующий пример кода, чтобы проверка значение .
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
Комментарии
Элементы, помеченные как ReadOnlyAttribute или true
не имеющие Set
метода, не могут быть изменены. Члены, у которых нет этого атрибута или помечены ReadOnlyAttribute как , false
являются элементами для чтения и записи, и их можно изменить. Значение по умолчанию — No.
Важно!
Класс PropertyDescriptor применяет ReadOnlyAttribute в среде разработки и во время выполнения. Если свойство помечается значением ReadOnlyAttributetrue
, значением этого атрибута является константный член Yes. Для свойства, помеченного с заданным ReadOnlyAttribute значением false
, значение равно No. Поэтому, если вы хотите проверка значение этого атрибута в коде, необходимо указать атрибут как ReadOnlyAttribute.Yes или ReadOnlyAttribute.No.
Дополнительные сведения см. в разделе Атрибуты.
Конструкторы
ReadOnlyAttribute(Boolean) |
Инициализирует новый экземпляр класса ReadOnlyAttribute. |
Поля
Default |
Определяет значение по умолчанию для атрибута ReadOnlyAttribute, равное No (то есть свойство, с которым связан этот атрибут, доступно для чтения и записи). Это статическое ( |
No |
Определяет, что свойство, с которым связан данный атрибут, доступно и для чтения, и для записи и может быть изменено. Это статическое ( |
Yes |
Определяет, что свойство, с которым связан данный атрибут, доступно только для чтения и не может быть изменено в обозревателе серверов. Это статическое ( |
Свойства
IsReadOnly |
Возвращает значение, показывающее, доступно ли свойство, с которым связан этот атрибут, только для чтения. |
TypeId |
В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute. (Унаследовано от Attribute) |
Методы
Equals(Object) |
Указывает, равен ли этот экземпляр заданному объекту. |
GetHashCode() |
Возвращает хэш-код данного экземпляра. |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
IsDefaultAttribute() |
Определяет, является ли этот атрибут используемым по умолчанию. |
IsDefaultAttribute() |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. (Унаследовано от Attribute) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса. (Унаследовано от Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Attribute) |