如何在同一个类的构造函数中调用方法,并将用户输入传递给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();
}
}
}
将半径设置为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()
。