我正在尝试在DisplayResults,GetLength,DeterminePrice和DetermineSale的命令行中显示值
我在Main()文件上遇到错误。
第一档:
//Alma Villasenor
using System;
namespace Assingment3
{
class Info
{
public void DisplayInfo()
{
System.Console.WriteLine("Alma Villasenor");
System.Console.WriteLine("C#");
System.Console.WriteLine("Judith L");
System.Console.WriteLine("Assignment3A");
System.Console.WriteLine(System.DateTime.Now.ToLongDateString());
}
}
}
第二档
//Alma Villasenor
using System;
namespace Assignment3
{
class MathOperations
{
public double DisplayResults(int avalue, int bvalue)
{
avalue = 50;
bvalue = 51;
double Results = (avalue + bvalue);
return Results;
}
public double GetLength(int cvalue, int dvalue)
{
cvalue = 25;
dvalue = 12;
double Length = (cvalue / dvalue);
return Length;
}
public double GetPrice(int evalue, int fvalue)
{
evalue = 100;
fvalue = 25;
double Price = (evalue * fvalue);
return Price;
}
public double DetermineSale(int gvalue, int hvalue)
{
gvalue = 30;
hvalue = 4;
double Sale = (gvalue - hvalue);
return Sale;
}
}
}
第三个文件(我需要调用我的方法/类来显示结果:
//Alma Villasenor
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Assingment3
{
class Program
{
public static void Main()
{
Info myinfo = new Info();
myinfo.DisplayInfo();
Assignment3.MathOperations.DisplayResults();
Console.ReadLine();
}
}
}
任何帮助?
答案 0 :(得分:2)
首先,如果您没有声明MathOperations类,则需要将方法与DisplayResults一样多地作为 static ,并且因为DisplayResults返回一个布尔值,将其分配给变量或将其显示为的System.Console.WriteLine(MathOperations.DisplayResults());
答案 1 :(得分:0)
在Main
方法中,您需要创建MathOperations
类的实例。然后,您需要向Console
写入方法调用的结果。
// Inside Main()
var math = new MathOperations();
Console.WriteLine(math.DisplayResults(a, b));
或者,将MathOperations
类中的方法设为静态。
public static double DisplayResults(int avalue, int bvalue)
{
avalue = 50;
bvalue = 51;
double Results = (avalue + bvalue);
return Results;
}
这将允许您在不创建MathOperations
类的实例的情况下调用此方法。
// Inside Main()
Console.WriteLine(MathOperations.DisplayResults(a, b));
答案 2 :(得分:0)
两件事:
首先,当您从Main方法访问时,不允许调用Assignment3.MathOperations.DisplayResults();
,这是静态的。 MathOperations类中的DisplayResults()方法不是。要么使方法成为静态,要么创建一个实例并在该实例上调用该方法。
其次,您指定该方法应具有签名:DisplayResults(int avalue, int bvalue)
。这意味着您需要使用两个参数(avalue
和bvalue
)调用它,而在没有参数的情况下调用它。
答案 3 :(得分:0)
public static void Main()
{
Info myinfo = new Info();
myinfo.DisplayInfo();
//Assignment3.MathOperations.DisplayResults();
//you need to create an instance of MathOperations before you can call the
//non-static DisplayResults() method.
MathOperations operation = new MathOperations();
//capture your return value
double result = operation.DisplayResults(someValue, someOtherValue);
Console.WriteLine(result);
Console.ReadLine();
}
如果你真的想使用类名调用DisplayResults(),最好将方法声明为static:
public static double DisplayResults(int avalue, int bvalue)
但是如果你想用它做点什么,请记住捕获你的返回值。
答案 4 :(得分:-1)
问题在于您尝试将DisplayResults
用作静态方法。
除非您在第二个文件中将其声明为静态,否则您需要创建类MathOperations
的实例。
在这种情况下,您只需使用:
MathOperations ops = new MathOperations();
Console.WriteLine(ops.DisplayResults());
此外,对于第一个文件,如果导入命名空间System(使用System语句),则在调用Console.WriteLine方法时不需要指定它:
using System;
namespace Assingment3
{
class Info
{
public void DisplayInfo()
{
Console.WriteLine("Alma Villasenor");
Console.WriteLine("C#");
Console.WriteLine("Judith L");
Console.WriteLine("Assignment3A");
Console.WriteLine(System.DateTime.Now.ToLongDateString());
}
}
}