C# C# Basics (Retired) Perform Converting Strings to Integers

Tirth Upadhyay
Tirth Upadhyay
920 Points

why not int instead of string?

we use : string Input = Console.ReadLine();

then we need to convert the string into integer.

why cant we directly use the integer????

2 Answers

Jennifer Nordell
STAFF
Jennifer Nordell
Treehouse Staff

Because everything coming in from the user from the console is a string. So we have to take what they have put in and change it to an integer. This is not specific to C#. All input from the user (in most languages I know) have what's coming in as strings.

edited for additional note

While you could try to parse the integer from their input when originally assigning to the variable, any incorrect input from the user would cause an unhandled exception and your program would crash. This (imo) would not be the best solution.

Tirth Upadhyay
Tirth Upadhyay
920 Points

like we use : Console.ReadLine();

To get the input from User in form of String.

What is the command for getting input in form of integer?

Plus when we know that the user is surely going to add numbers(Integers) why do we apply string and not integer directly? Though Thank you so much for your reply. :)

Jennifer Nordell
Jennifer Nordell
Treehouse Staff

ReadLine is a method on the Console object. And it returns a string. Here's the MSDN documentation.

https://msdn.microsoft.com/en-us/library/system.console.readline(v=vs.110).aspx

We're not really applying a string. It's what is returned by the ReadLine method as noted in the documentation above. This is just the way this method works. There is no command for getting input in the form of an integer. That being said, other languages have similar methods and they also return strings. All that I know about anyways.

But, unfortunately, users are human. Some of them are dumb, and some of them make honest mistakes like a typo. So if you're asking for an integer, but they accidentally type 4e (given that the keys are so close together) then your program is going to crash if it's not actually an integer. Now, later on you'll learn about Exceptions and how to handle them in the case that your user types in the wrong thing, but you're not quite there yet.

Hope this helps! :dizzy:

Tirth Upadhyay
Tirth Upadhyay
920 Points

Thank you so much! That cleared all my doubts! Looks like you have completed almost everything on Treehouse. I just wanted your feedback that after learning c# basics and c#objects will i be able to code scripts for my games in unity???

Jennifer Nordell
Jennifer Nordell
Treehouse Staff

Tirth Upadhyay Lol! Oh no no no... I'm far from done :smiley: But to answer your question, yes, I think you will have the foundations needed to get started. But I myself have just started the game development courses here. So I can't say for sure.

Tirth Upadhyay
Tirth Upadhyay
920 Points

Thank you so much for your feedback! hope u continue answering my questions.

Gi Devs
Gi Devs
12,171 Points

we could in theory do it all in one line but for starting perposes it is better to split it up. I like to experiment a bit and work thing s out on my own and I came up with this

int newInput = System.Int32.Parse(System.Console.ReadLine());