如何在同一个类的构造函数中调用方法,并将用户输入传递给this

本文关键字:用户 输入 this 方法 同一个 调用 构造函数 | 更新日期: 2023-09-27 18:10:08

我发现这里有几个帖子和我的问题很相似。但这无济于事。我想计算圆的面积。我不想自己传递值,我想接受用户输入,因此我创建了一个名为myValue()的方法。现在我想把这个方法或int _radius变量调用到构造函数中。我是c#的新手,喜欢你在这方面的建议:

            using System;
            using System.Collections.Generic;
            using System.Linq;
            using System.Text;
            using System.Threading.Tasks;
            namespace PracticeFor70_483Exam.Venkat
            {
                class Circle
                {
                    private readonly int Radius;
                    public static int MyValue()
                    {
                        Console.WriteLine("Please enter radius value: ");
                        return Convert.ToInt32(Console.ReadLine());
                    }
                    float _PI = 3.141F;
                    public Circle()
                    {
                        Radius = myValue();
                        //this._radius = Radius; 
                    }
                    public float CalculateArea()
                    {
                        return this._PI * this.Radius * this.Radius;
                    }
                }
                class StaticAndInstanceClass
                {
                    public static void Main()
                    {
                        Circle c1 = new Circle(2);
                        float Area = c1.CalculateArea();
                        Console.WriteLine("The area is: {0}", Area);
                        Console.ReadLine();
                    }
                }
            }

如何在同一个类的构造函数中调用方法,并将用户输入传递给this

将半径设置为Circle类的实例字段,并修改MyValue方法

public class Circle
{
    private readonly int Radius;
    public static int MyValue()
    {
        Console.WriteLine("Please enter radius value: ");
        return Convert.ToInt32(Console.ReadLine());
    }
    public Circle()
    {
        Radius = MyValue();
    }
...
}

请注意,这是一个非常"坏主意",但你的circle类应该表示一个圆,而不是其他。向它提供有关主机的信息至少可以说是奇怪的。它违反了单一职责原则。

在给定的代码中有两个问题:
1. 用myValue()代替MyValue()。因为它是区分大小写的。
2. 用Circle(2)代替Circle()