Вы оставили две закрывающие фигурные скобки и утверждал, функция возвращает int
, который на самом деле ничего не возвращает. Это помогает либо исправить одну вещь за раз - и на самом деле попытаться написать только небольшой код за раз, скомпилировав, как вы идете. Если вы не видите, что не так, комментируйте большие куски и постарайтесь, чтобы ваш код аккуратно выстроился в линию, чтобы вы могли видеть, где вы, возможно, пропустили скобу или подобное.
using System;
namespace Calculator
{
class Program
{
public static void Main(string[] args)
{
}//<-----------
public int number01;
public int number02;
public int Number03
{
get
{
return number02/number01;
}
}//<----------
class Program1 : Program
{
public void DivideFinal()//<---- void not int
{
Console.Write("Enter a number to be divided: ");
Console.ReadKey();
number01 = Convert.ToInt32(Console.ReadKey());
Console.WriteLine("Enter another number to be divided");
number02 = Convert.ToInt32(Console.ReadKey());
Console.WriteLine("The result is: " + Number03);
Console.ReadKey();
}
}
}
}
справа - теперь у нас есть это составление давайте посмотрим на суть того, что у вас есть.
namespace Calculator
{
class Program
{
public static void Main(string[] args)
{
}
}
}
У вас есть класс с именем Program
в пространстве имен с ожидаемым static void Main
точки входа. Он ничего не делает, поэтому, когда вы его запускаете, ничего не произойдет. Если вы запустите его в отладчике, вы можете напечатать «Нажмите любую клавишу, чтобы продолжить».
Если вы хотите, чтобы что-то произошло, ему нужен код в вашей точке входа - эта функция Main
по умолчанию.
Вы добавили свойства данного класса, которые вы не используете. Вы начали писать еще один класс: Program1
внутри этот класс, который также наследуется от этого класса.
Рассмотрите возможность называть его Calculator
, так как это то, что вы собираетесь писать. Это не нужно наследовать от вашего основного класса - они не связаны. Очень просто сделать новый класс в новом файле.
Запустите новый класс и добавьте свойства и другие методы, такие как DivideFinal
. (? Кстати, почему ты назвал его DivideFinal
)
namespace Calculator
{
class Calculator
{
public int number01;
public int number02;
public int Number03
{
get
{
return number02/number01;
}
}
public void DivideFinal()
{
Console.Write("Enter a number to be divided: ");
Console.ReadKey();
number01 = Convert.ToInt32(Console.ReadKey());
Console.WriteLine("Enter another number to be divided");
number02 = Convert.ToInt32(Console.ReadKey());
Console.WriteLine("The result is: " + Number03);
Console.ReadKey();
}
}
}
Наконец, давайте сделаем основную функцию сделать что-то:
public static void Main(string[] args)
{
var calculator = new Calculator();
calculator.DivideFinal();
}
Это приведет к некоторым ошибкам, которые мы можем иметь дело с в другом вопрос. Например, Convert.ToInt32
ожидания String
, но вы даете ему результат Console.ReadKey
который не является строкой. Вместо этого вы можете рассмотреть Console.ReadLine()
: например, question.
Из того, что я вижу, вашему свойству 'Number03' требуется еще одна закрывающая скобка после' get' accessor. – ThePerplexedOne
Спасибо, я исправил это. – CoadA
Посмотрите на 'double', целочисленное деление не особенно полезно. Что будет напечатано, если вы сделали 10/3? – Equalsk