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
В следующем примере кода показано, как проверка значение для ReadOnlyAttributeMyProperty
. Во-первых, код получает со 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. Для свойства, помеченного значением ReadOnlyAttributefalse
, значение равно 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) |
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе:Отправить и просмотреть отзыв по