Bird
Raised Fist0
C Sharp (C#)programming~10 mins

Verbatim and raw string literals in C Sharp (C#) - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Verbatim and raw string literals
Start
Choose string type
Treats backslashes and newlines literally
Multi-line, preserves formatting, no escapes
Use string in code
Output string as-is
End
This flow shows choosing between verbatim (@) and raw ("""") string literals, then using and outputting them literally.
Execution Sample
C Sharp (C#)
string path = @"C:\Users\Name\Documents";
string raw = """
Line1
Line2\nLine3
""";
Console.WriteLine(path);
Console.WriteLine(raw);
This code defines a verbatim string for a file path and a raw string with multiple lines, then prints both.
Execution Table
StepActionEvaluationResult
1Assign verbatim string to pathpath = @"C:\Users\Name\Documents"path = C:\Users\Name\Documents
2Assign raw string to rawraw = """ Line1 Line2\nLine3 """raw = "Line1 Line2\nLine3 " (3 lines, literal backslash n)
3Print pathConsole.WriteLine(path)Output: C:\Users\Name\Documents
4Print rawConsole.WriteLine(raw)Output: Line1 Line2\nLine3
5End of programProgram ends
💡 Program ends after printing both strings literally.
Variable Tracker
VariableStartAfter 1After 2Final
pathnullC:\Users\Name\DocumentsC:\Users\Name\DocumentsC:\Users\Name\Documents
rawnullnullLine1 Line2\nLine3 (3 lines)Line1 Line2\nLine3 (3 lines)
Key Moments - 3 Insights
Why does the verbatim string keep double backslashes?
Because verbatim strings treat backslashes literally, so you write double backslashes to represent one actual backslash. See step 1 in execution_table.
Why does the raw string print \n instead of a new line?
Raw strings do not process escape sequences like \n, so it prints the characters \ and n literally. See step 4 in execution_table.
How do verbatim and raw strings handle new lines differently?
Verbatim strings can include new lines directly, but raw strings preserve all formatting exactly as typed, including new lines and spaces. See variable_tracker for raw string content.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of 'path' after step 1?
AC:\\Users\\Name\\Documents
BC:/Users/Name/Documents
CC:\Users\Name\Documents
DC:UsersNameDocuments
💡 Hint
Check the 'Result' column in row 1 of execution_table.
At which step does the program print the raw string?
AStep 4
BStep 3
CStep 2
DStep 5
💡 Hint
Look for Console.WriteLine(raw) in execution_table.
If you want the raw string to interpret \n as a new line, what should you do?
AUse verbatim string instead
BReplace raw string with normal string with escapes
CAdd escape sequences inside raw string
DRaw strings always interpret \n as new line
💡 Hint
Raw strings do not process escapes, see key_moments about raw string behavior.
Concept Snapshot
Verbatim strings start with @ and treat backslashes and new lines literally.
Raw strings use triple quotes """ and preserve all formatting exactly.
Verbatim strings require double backslashes for one backslash.
Raw strings do not process escape sequences like \n.
Use verbatim for Windows paths, raw for multi-line text.
Print outputs strings as they are written.
Full Transcript
This example shows how C# uses verbatim strings with @ and raw strings with triple quotes """. Verbatim strings treat backslashes literally, so double backslashes represent one backslash. Raw strings preserve all formatting including new lines and backslashes without processing escape sequences. The code assigns a verbatim string to 'path' and a raw string to 'raw', then prints both. The output shows the verbatim string as a Windows path with backslashes, and the raw string as multiple lines with literal \n characters. This helps beginners understand how these string types handle special characters and formatting differently.

Practice

(1/5)
1. What is the main purpose of a verbatim string literal in C# (starting with @)?
easy
A. To write strings that ignore escape sequences and can span multiple lines easily.
B. To create strings that automatically convert to uppercase.
C. To define strings that are encrypted at compile time.
D. To declare strings that are immutable and cannot be changed.

Solution

  1. Step 1: Understand verbatim string syntax

    Verbatim strings start with @ and allow writing strings with backslashes and new lines without escape sequences.
  2. Step 2: Identify the purpose

    This makes writing file paths and multi-line text easier and more readable.
  3. Final Answer:

    To write strings that ignore escape sequences and can span multiple lines easily. -> Option A
  4. Quick Check:

    Verbatim strings ignore escapes = A [OK]
Hint: Verbatim strings start with @ and ignore escape sequences [OK]
Common Mistakes:
  • Thinking verbatim strings convert text case
  • Assuming verbatim strings encrypt content
  • Confusing immutability with verbatim syntax
2. Which of the following is the correct syntax for a raw string literal in C# 11+?
easy
A. """This is a raw string"""
B. @"This is a raw string"
C. 'This is a raw string'
D. "This is a raw string"

Solution

  1. Step 1: Recall raw string literal syntax

    Raw string literals in C# 11+ use triple double quotes to start and end the string.
  2. Step 2: Compare options

    """This is a raw string""" uses triple double quotes correctly; @"This is a raw string" is verbatim string syntax, not raw string.
  3. Final Answer:

    """This is a raw string""" -> Option A
  4. Quick Check:

    Raw strings use triple quotes = D [OK]
Hint: Raw strings use triple quotes """ at start and end [OK]
Common Mistakes:
  • Confusing verbatim strings (@) with raw strings (""")
  • Using single quotes for strings
  • Using normal double quotes for raw strings
3. What will be the output of this C# code?
string path = @"C:\Users\Admin";
string raw = """C:\Users\Admin""";
Console.WriteLine(path);
Console.WriteLine(raw);
medium
A. C:\\Users\\Admin C:\\Users\\Admin
B. C:\Users\Admin C:\Users\Admin
C. C:UsersAdmin C:UsersAdmin
D. C:\UsersAdmin C:\Users\Admin

Solution

  1. Step 1: Understand verbatim string output

    The verbatim string @"C:\Users\Admin" outputs the path with single backslashes because escapes are ignored.
  2. Step 2: Understand raw string output

    The raw string """C:\Users\Admin""" preserves the backslashes exactly as typed, so output is the same.
  3. Final Answer:

    C:\Users\Admin C:\Users\Admin -> Option B
  4. Quick Check:

    Both print path with single backslashes = B [OK]
Hint: Both verbatim and raw strings preserve backslashes as typed [OK]
Common Mistakes:
  • Expecting double backslashes in output
  • Confusing escape sequences in verbatim strings
  • Thinking raw strings remove backslashes
4. Identify the error in this code snippet:
string text = @"This is a "quoted" word.";
medium
A. Raw string literals require triple quotes, not @.
B. Verbatim strings cannot contain double quotes.
C. No error, code is correct.
D. Missing escape for inner quotes inside verbatim string.

Solution

  1. Step 1: Check verbatim string rules for quotes

    In verbatim strings, double quotes inside must be doubled to escape them ("" for one ").
  2. Step 2: Identify the error

    The code uses single double quotes inside verbatim string, causing syntax error.
  3. Final Answer:

    Missing escape for inner quotes inside verbatim string. -> Option D
  4. Quick Check:

    Double quotes inside verbatim need doubling = C [OK]
Hint: Double inner quotes "" inside verbatim strings to escape [OK]
Common Mistakes:
  • Using single double quotes inside verbatim strings
  • Confusing verbatim and raw string syntax
  • Assuming verbatim strings allow unescaped quotes
5. You want to store this multi-line JSON string exactly as shown, including indentation and quotes, in C# 11+. Which is the best way to do it?
{
  "name": "Alice",
  "age": 30
}
hard
A. Use a normal string with \n for new lines and escaped quotes.
B. Use a verbatim string with @ and escape all quotes with backslashes.
C. Use a raw string literal with triple quotes preserving all formatting.
D. Use string concatenation for each line.

Solution

  1. Step 1: Understand formatting needs

    The JSON string has multiple lines, indentation, and quotes that must be preserved exactly.
  2. Step 2: Choose best string literal

    Raw string literals with triple quotes preserve all formatting and quotes without escapes, making code clean and readable.
  3. Final Answer:

    Use a raw string literal with triple quotes preserving all formatting. -> Option C
  4. Quick Check:

    Raw strings preserve multi-line and quotes = A [OK]
Hint: Use raw strings for exact multi-line text with quotes [OK]
Common Mistakes:
  • Escaping quotes manually in verbatim strings
  • Using normal strings with many escapes
  • Concatenating strings unnecessarily