无法使用console.readline()设置我的Setter

时间:2014-03-07 22:56:48

标签: c#

我正在试图弄清楚如何通过控制台的readline设置我的Setter。任何帮助都会很精彩。

        MathOperations toDo = new MathOperations();

        Console.WriteLine("Enter first number to calculate");
        toDo.inputOne = int.Parse(Console.ReadLine());
        Console.WriteLine("Enter second number to calculate");
        toDo.inputTwo = int.Parse(Console.ReadLine());

        Console.WriteLine("Added: " + toDo.addNumbers(value1, value2));

class MathOperations
{
    private int inputOne;
    private int inputTwo;

    public int getInputOne()
    {
        return inputOne;
    }
    public void setInputOne(int value)
    {
        inputOne = value;
    }
    public int getInputTwo()
    {
        return inputTwo;
    }
    public void setInputTwo(int value)
    {
        inputTwo = value;
    }
    public int addNumbers(int number1, int number2)
    {
        int total;
        total = number1 + number2;
        return total;
    }
}

3 个答案:

答案 0 :(得分:1)

你想要一个Proprety:

public int InputOne //bad name
{ get; set; }

这是自动属性

的示例

你也可以这样做:

private int inputTwo;
public int InputTwo //bad name
{ 
   get
   {
      return inputTwo;
   }
   set
   {
      inputTwo = value;
   }
}

使用其中一个代码,您所拥有的代码将通过编写以下内容来调用“set”函数:

InputOne = int.Parse(Console.ReadLine());
InputTwo = int.Parse(Console.ReadLine());

要解决有关命名的注释,在这种情况下,我将使用List<int> Operands作为属性,并将readline命令添加到此列表中。然后addNumbers函数变为:

return Operands.Sum();

这使得将来添加3个,4个甚至更多数字变得更加容易,而无需创建更多变量等。您甚至可以使用此方法读取循环中的输入。

答案 1 :(得分:0)

您没有使用set- / getMethods的setter / getter属性。你需要这样的房产:

public int InputOne {
    set { inputOne = value; }
    get { return inputOne; }
}

public int InputTwo {
    set { inputTwo = value; }
    get { return inputTwo; }
}

答案 2 :(得分:0)

使用Auto-Implemented Properties

class MathOperations
{
    private int inputOne {get;set;}
    private int inputTwo {get;set;}

    public int addNumbers(int number1, int number2)
    {
        int total;
        total = number1 + number2;
        return total;
    }
}