Back to list
christian289

managing-literal-strings

by christian289

ClaudeCode와 함께하는 .NET 개발 튜토리얼

1🍴 0📅 Jan 25, 2026

SKILL.md


name: managing-literal-strings description: "Manages literal strings by pre-defining them as const string in C#. Use when organizing string constants, log messages, exception messages, or UI texts across the codebase."

Literal String Handling

A guide on handling literal strings in C# code.

Project Structure

The templates folder contains a .NET 9 Console Application example.

templates/
└── LiteralStringSample/                ← .NET 9 Console Application
    ├── Constants/
    │   ├── Messages.cs                 ← General message constants
    │   └── LogMessages.cs              ← Log message constants
    ├── Program.cs                      ← Top-Level Statement entry point
    ├── GlobalUsings.cs
    └── LiteralStringSample.csproj

Rule

Literal strings should preferably be pre-defined as const string

Examples

Good Example

// Good example
const string ErrorMessage = "An error has occurred.";

if (condition)
    throw new Exception(ErrorMessage);

Bad Example

// Bad example
if (condition)
    throw new Exception("An error has occurred.");

Constants Class Structure

Manage by separating into static classes by message type:

// Constants/Messages.cs
namespace LiteralStringSample.Constants;

public static class Messages
{
    // Error messages
    public const string ErrorOccurred = "An error has occurred.";

    public const string InvalidInput = "Invalid input.";

    // Success messages
    public const string OperationSuccess = "Operation completed successfully.";
}
// Constants/LogMessages.cs
namespace LiteralStringSample.Constants;

public static class LogMessages
{
    // Information logs
    public const string ApplicationStarted = "Application started.";

    // Format strings
    public const string UserLoggedIn = "User logged in: {0}";
}

Usage Example

using LiteralStringSample.Constants;

try
{
    if (string.IsNullOrEmpty(input))
    {
        throw new ArgumentException(Messages.InvalidInput);
    }

    Console.WriteLine(Messages.OperationSuccess);
}
catch (Exception)
{
    Console.WriteLine(Messages.ErrorOccurred);
}

// Using format strings
Console.WriteLine(string.Format(LogMessages.UserLoggedIn, userName));

Reasons

  1. Maintainability: Only one place to modify when changing messages
  2. Reusability: Same messages can be used in multiple places
  3. Type safety: Typos can be caught at compile time
  4. Performance: Eliminates string literal duplication
  5. Consistency: Messages can be managed in pairs (e.g., Korean/English)

Score

Total Score

65/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon