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.
View on GitHubchristian289/dotnet-with-claudecode
wpf-dev-pack
January 23, 2026
Select agents to install to:
npx add-skill https://github.com/christian289/dotnet-with-claudecode/blob/main/wpf-dev-pack/skills/managing-literal-strings/SKILL.md -a claude-code --skill managing-literal-stringsInstallation paths:
.claude/skills/managing-literal-strings/# 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
```csharp
// Good example
const string ErrorMessage = "An error has occurred.";
if (condition)
throw new Exception(ErrorMessage);
```
### Bad Example
```csharp
// Bad example
if (condition)
throw new Exception("An error has occurred.");
```
## Constants Class Structure
Manage by separating into static classes by message type:
```csharp
// 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.";
}
```
```csharp
// 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
```csharp
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.Write