我发现这里的帖子与我的问题很相似。但这没有帮助。我想计算一个圆的面积。我不想自己传递值,而是想获取用户输入,因此我创建了一个名为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();
}
}
}
答案 0 :(得分:2)
将radius设为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();
}
...
}
请注意,这是一个非常糟糕的主意"但是,你的圆圈类应该代表一个圆圈而不是其他东西。提供有关控制台的信息至少可以说是奇怪的。它违反了Single Responsibility Principle等。
答案 1 :(得分:0)
给定代码中有两个问题:
1. myValue()
代替MyValue()
。因为,它区分大小写
2. Circle(2)
而不是Circle()
。因为,它没有带参数的构造函数。