Claude-skill-registry-data managing-literal-strings
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.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/managing-literal-strings" ~/.claude/skills/majiayu000-claude-skill-registry-data-managing-literal-strings && rm -rf "$T"
manifest:
data/managing-literal-strings/SKILL.mdsource content
Literal String Handling
A guide on handling literal strings in C# code.
Project Structure
The templates folder contains a Console Application example (use latest .NET per version mapping).
templates/ └── LiteralStringSample/ ← 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
- Maintainability: Only one place to modify when changing messages
- Reusability: Same messages can be used in multiple places
- Type safety: Typos can be caught at compile time
- Performance: Eliminates string literal duplication
- Consistency: Messages can be managed in pairs (e.g., Korean/English)