C# 对数学方程和打印行使用setter和getter

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

所以我在使用setter和getter时遇到了问题,我想我现在无法获得addNumbers的值,我已经把其他的注释掉了,所以我现在不担心它们。我最关心的是,一旦我将addnumbers的值传递给setter,从getter检索if,然后在addnumbers中使用它,就需要编写addnumbers值的语法。如果有人能启发我或给我一个好的例子,那将比我现在更好。提前感谢您的帮助

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说它是一个不可参与的成员。第二个在我被编辑后起作用了。