Problems getting method called correctly
-
:sigh:I am just learning C#, and am having a problem with it that I don't know what I'm doing wrong with. I have a method that asks for and recieves two numbers. These are parsed into two int's, and then stored. The next method is supposed to add the two numbers together, and give a return, i.e. sum. I also have outside the methods but inside the class "int firstNum, secondNum" declared. When I try to call the method using; DetermineNumberSum(firstNum, secondNum); I am told that my firstNum and secondNum are errors because of "Use of unassigned local variable 'firstNum/secondNum". I have not got a clue as to what is going on. Can anyone point me in the right direction so that I can solve this problem. Thank you in advance for your input.:confused::~
-
:sigh:I am just learning C#, and am having a problem with it that I don't know what I'm doing wrong with. I have a method that asks for and recieves two numbers. These are parsed into two int's, and then stored. The next method is supposed to add the two numbers together, and give a return, i.e. sum. I also have outside the methods but inside the class "int firstNum, secondNum" declared. When I try to call the method using; DetermineNumberSum(firstNum, secondNum); I am told that my firstNum and secondNum are errors because of "Use of unassigned local variable 'firstNum/secondNum". I have not got a clue as to what is going on. Can anyone point me in the right direction so that I can solve this problem. Thank you in advance for your input.:confused::~
just Initialize like below. firstNum =0,secondNum=0; i hope it will work
Know Yourself Then Grow Yourself.
-
:sigh:I am just learning C#, and am having a problem with it that I don't know what I'm doing wrong with. I have a method that asks for and recieves two numbers. These are parsed into two int's, and then stored. The next method is supposed to add the two numbers together, and give a return, i.e. sum. I also have outside the methods but inside the class "int firstNum, secondNum" declared. When I try to call the method using; DetermineNumberSum(firstNum, secondNum); I am told that my firstNum and secondNum are errors because of "Use of unassigned local variable 'firstNum/secondNum". I have not got a clue as to what is going on. Can anyone point me in the right direction so that I can solve this problem. Thank you in advance for your input.:confused::~
You are using the variables firstNum and secondNum, and have not assigned them a value. Local variables must have a value assigned to them before they can be used. You said something receives two numbers and parses them into ints, I can only assume it looks like this:
Int32.Parse(strFirstNumber); Int32.Parse(strSecondNumber);
Well, when you do that you must not be storing those values into either firstNum or secondNum. So after declaring firstNum and secondNum, aka "int firstNum, secondNum;" you need to say something like:firstNum = Int32.Parse(strFirstNumber); secondNum = Int32.Parse(strSecondNumber);
Then call:DetermineNumberSum(firstNum, secondNum);
-
just Initialize like below. firstNum =0,secondNum=0; i hope it will work
Know Yourself Then Grow Yourself.
I'm sorry, I think that I didn't express myself correctly. the two numbers are initialized by whatever the user puts into the the original string. The string is then parsed into an "int". public static void fetchTwoNumbers(out int firstNum, out int secondNum) { Console.WriteLine("Type in the first number."); string strFirst = Console.ReadLine(); firstNum = int.Parse(strFirst); Console.WriteLine("Type in the second number:"); string strSecond = Console.ReadLine(); secondNum = int.Parse(strSecond); } As you can see some input is needed to initialize them. Thank you though.
-
You are using the variables firstNum and secondNum, and have not assigned them a value. Local variables must have a value assigned to them before they can be used. You said something receives two numbers and parses them into ints, I can only assume it looks like this:
Int32.Parse(strFirstNumber); Int32.Parse(strSecondNumber);
Well, when you do that you must not be storing those values into either firstNum or secondNum. So after declaring firstNum and secondNum, aka "int firstNum, secondNum;" you need to say something like:firstNum = Int32.Parse(strFirstNumber); secondNum = Int32.Parse(strSecondNumber);
Then call:DetermineNumberSum(firstNum, secondNum);
This is the coding I have at present. I think it is what you are saying. public static void Main() { int firstNum, secondNum; DetermineNumberSum(firstNum, secondNum); fetchTwoNumbers(out firstNum, out secondNum); } public static void fetchTwoNumbers(out int firstNum, out int secondNum) { Console.WriteLine("Type in the first number:"); string strFirst = Console.ReadLine(); firstNum = int.Parse(strFirst); Console.WriteLine("Type in the second number:"); string strSecond = Console.ReadLine(); secondNum = int.Parse(strSecond); } public static int DetermineNumberSum(int firstNum, int secondNum) { int numberSum; int first = firstNum, second = secondNum; numberSum = first + second; Console.WriteLine(); Console.WriteLine("The sum of the numbers is: {0}", numberSum); return first + second; } It should work but, I am still getting the "Use of unassigned local variable 'firstNum/secondNum'. I don't know why. Thank you for your input though.
-
This is the coding I have at present. I think it is what you are saying. public static void Main() { int firstNum, secondNum; DetermineNumberSum(firstNum, secondNum); fetchTwoNumbers(out firstNum, out secondNum); } public static void fetchTwoNumbers(out int firstNum, out int secondNum) { Console.WriteLine("Type in the first number:"); string strFirst = Console.ReadLine(); firstNum = int.Parse(strFirst); Console.WriteLine("Type in the second number:"); string strSecond = Console.ReadLine(); secondNum = int.Parse(strSecond); } public static int DetermineNumberSum(int firstNum, int secondNum) { int numberSum; int first = firstNum, second = secondNum; numberSum = first + second; Console.WriteLine(); Console.WriteLine("The sum of the numbers is: {0}", numberSum); return first + second; } It should work but, I am still getting the "Use of unassigned local variable 'firstNum/secondNum'. I don't know why. Thank you for your input though.
JMOdom wrote:
int firstNum, secondNum; DetermineNumberSum(firstNum, secondNum);
No, this cannot work. You need to assign values to firstNum and secondNum, OR use them as out parameters. You try to use them BEFORE using them as out parameters, and you didn't give them values to start with, which is always bad programming. You should also create one variable per line, for readability.
Christian Graus - Microsoft MVP - C++ Metal Musings - Rex and my new metal blog "I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )