Copying the contents of one string to another in C#.NET: choose the statement that correctly creates a new string with the same contents as an existing one.

Difficulty: Easy

Correct Answer: String s1 = 'String'; \nString s2;\ns2 = String.Copy(s1);

Explanation:


Introduction / Context:
Copying strings can mean either copying the reference (two variables refer to the same instance) or creating a distinct string object with the same contents. This question targets creating a separate string instance with identical content.



Given Data / Assumptions:

  • We want to 'copy the contents' of one string into another.
  • Options include assignment, String.Concat, String.Copy, and invalid usages.


Concept / Approach:
Assignment (s2 = s1) copies the reference, not the object; both variables point to the same immutable instance. String.Copy(s1) historically created a new string instance with the same content (note: it is obsolete in newer .NET, but within classic C#.NET contexts, it denotes a content copy). Concat concatenates and does not copy content alone. Replace() without arguments is invalid, and StringCopy is not an API.



Step-by-Step Solution:

Option A: Reference copy only (same instance) → not a distinct content copy.Option B: Concatenates s1 and s2 (undefined s2 content) → incorrect.Option C: String.Copy(s1) → creates a new string with the same contents.Option D: Invalid method usage.Option E: Nonexistent method.


Verification / Alternative check:
Another way to ensure a distinct instance is new string(s1.ToCharArray()), though rarely necessary. Since strings are immutable, reference sharing is usually safe.



Why Other Options Are Wrong:
They either do not produce a new object with the same contents or call invalid/nonexistent APIs.



Common Pitfalls:
Assuming assignment duplicates the object; in .NET it only assigns the reference.



Final Answer:
String s1 = 'String'; \nString s2;\ns2 = String.Copy(s1);

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion