这是初学者的作业,因此我了解人们不想只给我答案。但是,如果可能的话,我很高兴能朝着正确的方向指路,因为我非常注意此提示:
在控制台应用程序项目的类文件中,我需要创建一个名为“ Operator”的对象。它必须与三种方法关联,每种方法分别用于加法,减法和除法。程序文件必须要求用户键入一个整数,然后将其通过每个方法传递,然后作为结果返回到控制台。他们没有指定要加/减/除的内容,因此我将使用方法1将“ 4”添加到用户输入中,使用方法2减去“ 3”,最后使用方法除以“ 1”。
该对象应该具有自己的cs文件,并且方法应该在程序文件中创建和调用。我知道有一种方法可以将类和方法放在同一个文件中,但是对于这种分配,他们希望它们分开。
我假设操作员对象不应具有任何属性,因为它没有我可以想到的特征;它只是一个用数字做事的抽象对象。因此,我建立了一个非常简单的运算符对象,但只包含了类名:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace threemethods
{
public class Operator
{
}
}
到目前为止,我意识到这可能是错误的,但是我不知道类文件中还需要其他什么,因为方法都将在程序文件中。 现在,我真正挣扎的地方是程序。我不知道将所有内容放到哪里,因为我所看到的示例都没有涉及用户输入,而且大多数都没有在外部完成。我知道Console.WriteLine(“ Pick a number”)可能会进入main方法,而加法/减法/除法将是main方法之下的单独方法。但是除此之外,我不知道应该遵循的模板。我也不确定如何在使用完所有方法之前将结果从一种方法“传递”到下一种方法。同样,我并不希望为我完成此工作,但是我确实需要有关如何进行此操作的指南,以帮助我前进。即使是一般性的概述也应该会有所帮助。我的程序代码现在太乱了,我无法共享它,因为那毫无意义。
非常感谢您!
致阿米尔:
非常感谢您的帮助!您能否解释一下如何格式化为调用方法而编写的控制台代码?我感到困惑的原因是我们被教导要在program.cs文件中使用这种格式:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace threemethods
{
class Program
{
static void Main(int[] args)
然后是下面的main方法。因此,当学校给我的格式有所不同时,我不确定如何正确集成您的控制台代码。如果我将您的控制台代码放在程序文件中,您能否告诉我应该添加什么代码才能使程序正常工作?例如,如何在控制台代码之前在文件顶部写什么?
非常感谢!!对不起,如果我说的话令人困惑!
答案 0 :(得分:4)
更新:
这是有关控制台的cs文件:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test
{
class Program
{
public int Data { get; set; }
static void Main(string[] args)
{
Console.WriteLine("Enter input:");
string line = Console.ReadLine();
var operatorObject = new Operator(); //You have to add reference, If is not.
var result = operatorObject.GetAdd(data);
Console.WriteLine(result);
Console.ReadLine();
}
}
}
现在在此Operator.CS文件中:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace threemethods
{
public class Operator
{
public double GetAdd(int data)
{
data = data + 4;
return GetSubtract(data);
}
private double GetSubtract(double data)
{
data = data - 3;
return GetDivide(data);
}
private double GetDivide(double data)
{
return data / 3;
}
}
}
要解决此问题,您必须设置private 2 last方法,并像我的示例一样使用其中的一种方法。
使用此示例,您可以仅调用其中一种方法,并且开发如此简单。
如果您愿意,我可以为您创建更多示例。
答案 1 :(得分:1)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace threemethods
{
public class Operator
{
public int Add(int data, int value)
{
return data + value;
}
public int Subtract(int data, int value)
{
return data - value;
}
public int Divide(int data, int value)
{
return data / value;
}
}
}
请注意,所有方法都返回一个整数。如果需要,将其更改为一些浮动值。
主要功能:
Console.WriteLine("Enter input:");
var userValue = Convert.ToInt32(Console.ReadLine());
var operatorObject = new Operator();
var result = operatorObject.Add(userValue, 4);
result = operatorObject.Subtract(result, 3);
result = operatorObject.Divide(result, 1);
Console.WriteLine(result);
Console.ReadLine();
答案 2 :(得分:1)
其他答案已经回答了该问题,尽管您似乎在询问有关如何实现答案代码的新问题?您已经在问题的编辑上敲了钉子,上面想要的答案(Amir或Philipp的答案)只是写在已经完成的主类中!以Amir's为例:
using System;
namespace threemethods
{
public class Operator
{
public double GetAdd(int data)
{
data = data + 4;
return GetSubtract(data);
}
private double GetSubtract(double data)
{
data = data - 3;
return GetDivide(data);
}
private double GetDivide(double data)
{
return data / 3;
}
}
class Program
{
public static int Data { get; set; }
static void Main(string[] args)
{
Console.WriteLine("Enter input:");
string line = Console.ReadLine();
Data = Int32.Parse(line);
var operatorObject = new Operator();
var result = operatorObject.GetAdd(Data);
Console.WriteLine(result);
Console.ReadLine();
}
}
}
请注意,您将在main上引发错误,因为控制台入口点的参数是Main(string [] args)而不是Main(int [] args)。如果您更改此设置,VS会不喜欢!另外,我建议不要使用不需要的东西来使进口膨胀。仅使用系统,仅导入系统。仅仅因为它是默认值并不意味着它是必需的。此外,使用“数据”字段设置很有趣,而不是我怎么做,您可能不需要它?我认为,仅在Main中使用一个变量会更容易,并且用更少的代码就更易读。另外,不要忘记解析字符串对象并将其转换为int进行操作!!!
这将是您的示例实现!玩得开心。