C# 对数学方程和打印行使用setter和getter
所以我在使用setter和getter时遇到了问题,我想我现在无法获得addNumbers的值,我已经把其他的注释掉了,所以我现在不担心它们。我最关心的是,一旦我将addnumbers的值传递给setter,从getter检索if,然后在addnumbers中使用它,就需要编写addnumbers值的语法。如果有人能启发我或给我一个好的例子,那将比我现在更好。提前感谢您的帮助C# 对数学方程和打印行使用setter和getter,c#,setter,getter,accessor,mutators,C#,Setter,Getter,Accessor,Mutators,所以我在使用setter和getter时遇到了问题,我想我现在无法获得addNumbers的值,我已经把其他的注释掉了,所以我现在不担心它们。我最关心的是,一旦我将addnumbers的值传递给setter,从getter检索if,然后在addnumbers中使用它,就需要编写addnumbers值的语法。如果有人能启发我或给我一个好的例子,那将比我现在更好。提前感谢您的帮助 class MainModule { static void Main(string[] arg
class MainModule
{
static void Main(string[] args)
{
Info myInfo = new Info();
myInfo.DisplayInfo("Assignment 3A - Math Ops w/ Properties");
MathOperations ops = new MathOperations();
int input1, input2;
Console.WriteLine("Enter first number to calculate");
ops.operand1 = int.Parse(Console.ReadLine());
Console.WriteLine("Enter second number to calculate");
ops.operand2 = int.Parse(Console.ReadLine());
Console.WriteLine("Added: {0}", ops.addNumbers);
//Console.WriteLine("Subtracted: " + ops.subtractNumbers(value1, value2));
//Console.WriteLine("Divided: " + ops.divideNumbers(value1, value2));
//Console.WriteLine("Multiplied: " + ops.multiplyNumbers(value1, value2));
Console.ReadLine();
}
class MathOperations
{
private int operand1;
private int operand2;
public int Operand1
{
get
{
return operand1;
}
set
{
operand1 = value;
}
}
public int Operand2
{
get
{
return operand2;
}
set
{
operand2 = value;
}
}
public MathOperations()
{
//default constructor
}
public MathOperations(int op1, int op2)
{
operand1 = op1;
operand2 = op2;
}
public int addNumbers()
{
return operand1 + operand2;
}
addNumbers
不是上述定义的属性。这是一个方法,您需要添加括号
Console.WriteLine("Added: {0}", ops.addNumbers());
.....
public int addNumbers()
{
return operand1 + operand2;
}
否则,我不建议这样做,因为您执行的操作没有读取类的属性,请将代码更改为
Console.WriteLine("Added: {0}", ops.addNumbers);
.....
public int addNumbers
{
get{ return operand1 + operand2; }
}
这样,您的getter就有了一个只读属性。但是,我仍然认为属性应该表示类的属性,而不是操作,因此在这种情况下,实现为方法似乎更正确。您尝试了什么?在第一个示例中,您保留addNumbers方法,在第二个示例中,您保留了不带括号的调用。我尝试了第一个示例,但这不起作用,因为intellisense说它是一个不可参与的成员。第二个在我被编辑后起作用了。