Jenter Алекс
Шрифт:
C#
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
MC++
[AttributeUsage(AttributeTargets::Class | AttributeTargets::Method)]
Visual Basic.NET
<AttributeUsage(AttributeTargets.Class BitOr AttributeTargets.Method)>
Свойство Inherited
Это свойство определяет, будет ли атрибут наследоваться классами, наследниками того, к которому этот атрибут применен. Это свойство может принимать два значения: true или false.
C#
// По умолчанию Inherited = true.
public class MyAttribute : Attribute {}
// Явно задается false.
[AttributeUsage(Inherited = false)]
public class YourAttribute : Attribute {}
MC++
// По умолчанию Inherited = true.
public gc class MyAttribute : public System::Attribute {}
// Явно задается false.
[AttributeUsage(Inherited = false)]
public gc class YourAttribute : public System::Attribute {}
Visual Basic.NET
' По умолчанию Inherited := true.
Public Class _
<AttributeUsage(AttributeTargets.All, Inherited := True)> MyAttribute
Inherits Attribute
End Class
Public Class _
<AttributeUsage(AttributeTargets.All, Inherited := False)> YourAttribute
Inherits Attribute
End Class
Вышеописанные атрибуты затем применяются к методу класса MyClass:
C#
public class MyClass {
// В C# несколько атрибутов могут определяться в разных блоках,
// ограниченных скобками или в одном блоке – через запятую.
// Порядок следования атрибутов неважен.
[MyAttribute][YourAttribute]
public void MyMethod {
//…
}
}
MC++
public gc class MyClass {
public:
// В MC++ несколько атрибутов могут определяться в разных блоках,
// ограниченных скобками или в одном блоке – через запятую.
// Порядок следования атрибутов неважен.
[MyAttribute][YourAttribute]
void MyMethod {
//…
}
}
Visual Basic.NET
' В Microsoft Visual Basic.NET несколько атрибутов разделяются запятыми.
' Порядок следования атрибутов неважен.
Public Class MyClass
Public Sub <MyAttribute, YourAttribute> MyMethod
'…
End Sub
End Class
И, наконец, рассмотрим класс YourClass – наследник MyClass. С методом MyMethod этого класса будет связан только атрибут MyAttribute.
C#
public class YourClass : MyClass {
// Этот метод имеет только атрибут MyAttribute.
public void MyMethod {
//…
}
}
MC++
public gc class YourClass : public MyClass {
public:
// Этот метод имеет только атрибут MyAttribute.
void MyMethod {
//…
}
}
Visual Basic.NET
Public Class YourClass
Inherits MyClass
' Этот метод имеет только атрибут MyAttribute.
Public Sub MyMethod
'…
End Sub
End Class
Свойство AllowMultiple
Это свойство показывает, может ли атрибут применяться многократно к одному элементу. По умолчанию оно равно false, что значит – атрибут может использоваться только один раз. Рассмотрим следующий пример: