Member 13671506 Ответов: 4

Проблема с добавлением параметров


- Привет!

Я новичок в программировании и испытываю проблемы со следующим упражнением:

классная программа
{
публичный статический пустота главный(строка[] аргументы)
{
строка n=калькулятор.WriteNumber(53+28);
Приставка.WriteLine(n);

Приставка.Линия чтения();

Меня смущает часть (53 +28).Как добавить арифметический знак?

Что я уже пробовал:

Я создал следующий класс, который компилирует( Когда калькулятор.Записанное число(53,28);)


калькулятор классов
{

public static string WriteNumber(int a ,int b)
{
int c = a + b;
результат строка = с.Метод toString();
возвращаемый результат;
}

4 Ответов

Рейтинг:
9

Member 13671506

public static string WriteNumber(int a ,int b=0)
строка n=калькулятор.WriteNumber(53+28);

Смысл упражнения состоял в том, чтобы я использовал значение по умолчанию и необязательные параметры.

Это решение, спасибо вам всем за вашу помощь!


PIEBALDconsult

Пожалуйста, не отвечай на свой вопрос.

Member 13671506

ОК

Рейтинг:
2

Thomas Daniels

53+28 считается как один параметр (так что вам все равно придется предоставить второй): когда вы звоните WriteNumber, он будет принимать 81 (т. е. 53 + 28) в качестве параметра a Он не получает другого лечения, потому что есть арифметический знак: 53 + 28 значение 81 который из них один int и вот вы передаете его в качестве параметра a.


Member 13671506

Спасибо за ваш ответ. Если он рассматривается как один параметр , то как я могу добавить второй, не изменяя внешний вид строки n=Calculator.Записанный номер(53+28)?

Maciej Los

Хорошо объяснил.

Member 13671506

Я могу сказать, что строка n= калькулятор.WriteNumber(53+87,0), но я не думаю, что он будет принят.

Dave Kreskowiak

Поскольку ваш метод WriteNumber принимает два параметра, вы должны поставить параметры с запятой между ними. Вы что-то ищете:

    string n = Calculator.WriteNumber(53, 28);

Thomas Daniels

Спасибо!

Thomas Daniels

Да, это будет принято. 53 + 87 (так что на самом деле 140) - это первый параметр "а", 0 это второй параметр 'b'.

Он будет принят потому что WriteNumber хочет два intс. и у вас есть два Инта: 140 (53 + 87) и 0.

Рейтинг:
2

phil.o

Ты можешь попробовать

string n = Calculator.WriteNumber(53, 28);

вместо.
Добавление осуществляется с помощью WriteNumber метод.
Вы можете выполнять операции с параметрами метода перед их передачей:
string n = Calculator.WriteNumber(10 - 5, 2 * 2);

Это эквивалентно
string n = Calculator.WriteNumber(5, 4);

и вернется 9.


Member 13671506

Решение должно быть в формате string n=Calculator.WriteNumber(52 + 28); и результат должен быть 81. Я подчинился (53,28), но мой учитель сказал, что это должно быть (52 + 28)

phil.o

Тогда вы должны определить свой метод только с одним параметром, но тогда нет смысла иметь метод здесь, так как нет ничего, чтобы вычислить (вы уже вычислили результат при вызове метода).
Непонятно, чего вы (или ваш учитель) на самом деле ожидаете:
- либо вы сохраняете два аргумента для своего метода, но тогда вам нужно вызвать метод с двумя аргументами.
- или вы даете методу только один параметр и вызываете его с этим единственным параметром, но, как я уже сказал, больше нет смысла иметь метод (так как больше нечего вычислять).

Рейтинг:
0

OriginalGriff

Чтобы передать два параметра, вы разделяете их запятой, как и при объявлении метода:

string n=Calculator.WriteNumber(53, 28);

Если вы хотите передать оператор, то я бы сделал это с перечислением:
public enum Operators
   {
   Plus,
   Minus,
   Times,
   DivideBy,
   }

Затем:
public static string Calculate(int a, Operators op, int b)
    {
    int result;
    switch (op)
        {
        case Operators.Plus: result = a + b; break;
        case Operators.Minus: result = a - b; break;
        case Operators.Times: result = a * b; break;
        case Operators.DivideBy: result = a / b; break;
        default: throw new ArgumentException("Unknown Operator: " + op);
        }
    return result.ToString();
    }
Тогда вы называете это так:
string n = Calculator.Calculate(53, Operators.Plus, 28);

Обратите внимание, что я изменил название вашего метода: Не называйте что-то "WriteNumber", если оно действительно что-то не пишет!