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:
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: Concatenatess1 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'; String s2;s2 = String.Copy(s1);
Discussion & Comments