2014-02-04 3 views
0

Я пытаюсь использовать мои три переменные (num1, num2 и oper) в каждом из моих методов, но я не могу найти способ сделать это где-нибудь в моей книге или в Интернете. Я понимаю, что многое еще предстоит сделать до того, как моя программа будет готова, и я улажу ее, когда узнаю. Прямо сейчас мне просто нужно знать код для импорта переменных для разных методов, мне не нужен код, исправленный или улучшенный. Надеюсь, это имеет смысл, я очень новичок в этом, поэтому простите мое невежество и несите меня. Большое спасибо за чтение!Использование переменных в нескольких методах

public class SimpleCalc 
{ 
    public double SimpleCalc(double num1, double num2, string oper) 
    { 
     Console.Write("Enter first integer: "); 
     num1 = Convert.ToDouble(Console.ReadLine()); 

     Console.Write("Enter operator (+,-,*,/or %)"); 
     oper = Convert.ToString(Console.ReadLine()); 

     Console.Write("Enter second integer: "); 
     num2 = Convert.ToDouble(Console.ReadLine()); 

     if (oper == "+"); 
     return addNumbers(); 

     if (oper == "-"); 
     return subtractNumbers(); 

     if (oper == "*"); 
     return multiplyNumbers; 

     if (oper == "/"); 
     return divideNumbers; 
    } 

    public double addNumbers() 
    { 
     Console.Write("The answer is: ", num1 + num2); 
    } 

    public double subtractNumbers() 
    { 
     Console.Write("The answer is: ", num1 - num2); 
    } 

    public double multiplyNumbers() 
    { 
     Console.Write("The answer is: ", num1 * num2); 
    } 

    public double divideNumbers() 
    { 
     Console.Write("The answer is: ", num1/num2); 
    } 
} 
+1

Ваши 'if' ничего не делают; вы должны удалить ';' после них, иначе это просто означает 'if (condition) then (пустая инструкция)' –

+0

Ничего из ваших предыдущих вопросов по тому же вопросу не помогло? – Steve

+0

@Steve Я не задавал вопрос по этой теме, у меня была проблема несколько дней назад с параметрами, но это была совершенно другая ситуация. –

ответ

2

Самый простой способ это просто объявить их в качестве параметров:

public double addNumbers(double num1, double num2) 
{ 
    return num1 + num2; 
} 

public double subtractNumbers(double num1, double num2) 
{ 
    return num1 - num2; 
} 

public double multiplyNumbers(double num1, double num2) 
{ 
    return num1 * num2; 
} 

public double divideNumbers(double num1, double num2) 
{ 
    return num1/num2; 
} 

И передать параметры в другие функции, как это:

if (oper == "+") 
    return addNumbers(num1, num2); 

if (oper == "-") 
    return subtractNumbers(num1, num2); 

if (oper == "*") 
    return multiplyNumbers(num1, num2); 

if (oper == "/") 
    return divideNumbers(num1, num2); 

Обратите внимание, что я Изменив потому что им нужно вернуть значение. Я также изменил операторы if, потому что после каждого условия у вас была точка с запятой, что на самом деле приводит к пустому условному выражению, за которым следует немедленный безусловный возврат.

Однако, если вам действительно нужно хранить переменные состояния внутри вашего класса и повторно использовать их несколькими способами, вы должны использовать fields или properties (которые обычно поддерживаются полями).

+0

Отлично, спасибо! –

Смежные вопросы