각 언어마다 고유한 특성 구문이 있습니다.Each language has its own attribute syntax.C++ 및 C#의 경우 특성은 대괄호로 묶고, 공백으로 요소와 구분되며, 줄 바꿈 문자를 사용할 수 있습니다.In C++ and C#, the attribute is surrounded by square brackets and separated from the element by white space, which can include a line break.Visual Basic의 경우 특성은 꺾쇠 괄호로 묶고, 같은 논리 줄에 있어야 합니다. 줄 바꿈이 필요하면 줄 연속 문자를 사용할 수 있습니다.In Visual Basic, the attribute is surrounded by angle brackets and must be on the same logical line; the line continuation character can be used if a line break is desired.

특성은 코드를 컴파일할 때 메타데이터로 내보내지며, 공용 언어 런타임과 사용자 지정 도구 또는 애플리케이션에서 런타임 리플렉션 서비스를 통해 사용할 수 있습니다.The attribute is emitted into metadata when you compile your code and is available to the common language runtime and any custom tool or application through the runtime reflection services.

모든 특성 이름은 규칙에 따라 Attribute로 끝납니다.By convention, all attribute names end with Attribute.하지만 런타임을 목적으로 하는 일부 언어(예: Visual Basic 및 C#)에서는 특성의 전체 이름을 지정할 필요가 없습니다.However, several languages that target the runtime, such as Visual Basic and C#, do not require you to specify the full name of an attribute.예를 들어 System.ObsoleteAttribute를 초기화하려는 경우 Obsolete로만 참조해야 합니다.For example, if you want to initialize System.ObsoleteAttribute, you only need to reference it as Obsolete.

Public Class Example
' Specify attributes between square brackets in C#.
' This attribute is applied only to the Add method.
<Obsolete("Will be removed in next version.")>
Public Shared Function Add(a As Integer, b As Integer) As Integer
Return a + b
End Function
End Class
Class Test
Public Shared Sub Main()
' This generates a compile-time warning.
Dim i As Integer = Example.Add(2, 2)
End Sub
End Class