managing-literal-strings

Literal String Handling

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "managing-literal-strings" with this command: npx skills add christian289/dotnet-with-claudecode/christian289-dotnet-with-claudecode-managing-literal-strings

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)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

converting-html-css-to-wpf-xaml

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

publishing-wpf-apps

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

using-xaml-property-element-syntax

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

managing-styles-resourcedictionary

No summary provided by upstream source.

Repository SourceNeeds Review