Difficulty: Easy
Correct Answer: 2, 3, 4
Explanation:
Introduction / Context:
Converting text to numeric types is routine. In C#, several standard methods exist to convert a numeric string to an int
, each with different behavior for invalid input.
Given Data / Assumptions:
String s = '123';
and int i;
int.Parse
, Int32.Parse
, Convert.ToInt32
, CInt
.
Concept / Approach:int.Parse
and Int32.Parse
are equivalent and parse a string containing digits into an integer (throwing on invalid format). Convert.ToInt32
also parses strings and handles null differently (returns 0 for null). Direct casting from string
to int
is not allowed. CInt
is a VB keyword, not valid C# syntax.
Step-by-Step Solution:
i = (int)s;
→ invalid in C#.Use i = int.Parse(s);
→ valid.Use i = Int32.Parse(s);
→ valid.Use i = Convert.ToInt32(s);
→ valid.Use i = CInt(s);
→ invalid in C#.
Verification / Alternative check:
For safe parsing, int.TryParse(s, out i)
avoids exceptions on bad input and returns a boolean.
Why Other Options Are Wrong:
Any combination including 1 or 5 is incorrect because casting a string to int is illegal and CInt
is not a C# construct.
Common Pitfalls:
Confusing C# with VB syntax; forgetting to handle invalid inputs and culture-specific formats.
Final Answer:
2, 3, 4
Discussion & Comments