>백엔드 개발 >C++ >읽기 가능한 열거형 구조를 사용하여 C#에서 이해할 수 없는 코드를 어떻게 표현할 수 있습니까?

읽기 가능한 열거형 구조를 사용하여 C#에서 이해할 수 없는 코드를 어떻게 표현할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-13 18:28:45434검색

How Can I Represent Incomprehensible Codes in C# with Readable Enum-Like Structures?

읽기 쉬운 열거형 구조를 사용하여 이해하기 어려운 C# 코드 연결

C# 열거형의 제한 사항은 기본 유형이 정수여야 한다는 것입니다. 이는 이해하기 어려운 코드를 나타내는 열거형 생성을 방해할 수 있습니다. 이 문제를 해결하기 위해 몇 가지 대안을 고려할 수 있습니다.

한 가지 기술은 클래스에서 속성을 사용하는 것입니다. 이 접근 방식은 문자열을 값으로 사용하는 유연성을 유지하면서 좀 더 열거형과 유사한 구문을 제공합니다. 예를 들어 Logger 클래스는 로깅 범주를 나타내는 속성을 정의할 수 있습니다.

<code class="language-csharp">public class LogCategory
{
    private LogCategory(string value) { Value = value; }

    public string Value { get; private set; }

    public static LogCategory Trace { get { return new LogCategory("Trace"); } }
    public static LogCategory Debug { get { return new LogCategory("Debug"); } }
    public static LogCategory Info { get { return new LogCategory("Info"); } }
    public static LogCategory Warning { get { return new LogCategory("Warning"); } }
    public static LogCategory Error { get { return new LogCategory("Error"); } }

    public override string ToString() { return Value; }
}</code>

또 다른 옵션은 유형이 안전한 문자열 값을 매개변수로 메소드에 전달하는 것입니다. 이 접근 방식을 사용하면 특정 문자열 값을 허용하는 강력한 형식의 메서드를 만들 수 있습니다. Logger 클래스의 이러한 메소드 예:

<code class="language-csharp">public static void Write(string message, LogCategory logCategory)
{
    var log = new LogEntry { Message = message };
    Logger.Write(log, logCategory.Value);
}</code>

사용방법:

<code class="language-csharp">Logger.Write("这几乎就像一个枚举。", LogCategory.Info);</code>

두 기술 모두 이해하기 어려운 코드를 표현하기 위한 열거형에 대한 대안을 제공하여 유형 안전성과 가독성이라는 이점을 제공합니다.

위 내용은 읽기 가능한 열거형 구조를 사용하여 C#에서 이해할 수 없는 코드를 어떻게 표현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.