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:
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