728x90
반응형
- C#에서
[]
괄호 안에 사용하는 것은 "어트리뷰트(Attribute)
"라고 부르며, 이는 자바의 어노테이션(Annotation)과 매우 유사한 개념입니다. - 어트리뷰트는 코드 요소(클래스, 메서드, 필드 등)에 메타데이터를 추가하여 컴파일러나 런타임에 특별한 동작을 지시하거나 정보를 제공하는 데 사용됩니다.
- 정의: 어트리뷰트는 코드에 추가적인 메타데이터를 첨부하기 위한 방법입니다.
- 표기법: 대괄호
[]
안에 어트리뷰트 이름을 작성하여 사용합니다. - 용도: 컴파일러 지시, 런타임 행동 변경, 코드 문서화 등 다양한 목적에 사용됩니다.
using System;
[Obsolete("이 클래스는 더 이상 사용되지 않습니다.")]
public class OldClass
{
// ...
}
- 위 예시에서
[Obsolete]
어트리뷰트는 해당 클래스가 더 이상 사용되지 않음을 표시하며, 이를 사용하는 개발자에게 경고를 제공합니다.
- 역할: Unity에서
private
또는protected
필드를 인스펙터에 노출하여 에디터에서 편집할 수 있도록 합니다. - 사용 예시:
using UnityEngine;
public class Example : MonoBehaviour
{
[SerializeField]
private int health = 100;
}
- 위 코드에서
health
필드는private
이지만,[SerializeField]
어트리뷰트를 통해 Unity 에디터 인스펙터에서 편집할 수 있게 됩니다.
-
유사점:
- 둘 다 메타데이터를 제공하는 방법입니다.
- 컴파일러나 런타임에서 특정 행동을 지정하거나 정보를 전달하는 데 사용됩니다.
- 코드의 가독성과 유지보수성을 향상시키는 데 도움을 줍니다.
-
차이점:
- 사용 방법과 일부 기능에서 언어적 차이가 있을 수 있습니다.
- 자바에서는
@
기호를 사용하여 어노테이션을 표시하며, C#에서는[]
를 사용합니다.
public class Example {
@Deprecated
public void oldMethod() {
// ...
}
}
- 위 자바 코드에서
@Deprecated
어노테이션은 해당 메서드가 더 이상 사용되지 않음을 나타내며, 이를 사용하는 개발자에게 경고를 제공합니다. 이는 C#의[Obsolete]
어트리뷰트와 동일한 역할을 합니다.
[]
는 C#에서 어트리뷰트를 표시하는 데 사용됩니다.SerializeField
는 Unity에서 필드를 직렬화하고 인스펙터에 노출하기 위한 어트리뷰트입니다.- C#의 어트리뷰트와 자바의 어노테이션은 개념적으로 유사하며, 코드에 메타데이터를 추가하는 역할을 합니다.
728x90
반응형
'C# .Net' 카테고리의 다른 글
.NET 콘솔 프로그램에서 .exe와 .dll의 차이점 및 관계 (0) | 2024.09.12 |
---|---|
리눅스에서 윈도우즈용 닷넷(.NET) 실행 파일(exe) 빌드 (0) | 2024.09.12 |
C# 데스크톱 애플리케이션 개발 기술 (0) | 2024.08.29 |
C# ref 키워드 (0) | 2024.08.28 |
C# 다중 반환 (Multi Return Value) (0) | 2024.08.28 |