我一直在尝试使用类编写我的第一个程序,在Visual Studio中我是C#的新手,并且值得一提的是它已经有一段时间了(2年),因为我使用OOP Im寻找一种方法来启动和运行通过练习,它是一个简单的程序来计算一个poligon的面积,周长和体积。
我没有能够修改类的属性,即使我没有错误,并且我没有得到任何值到我的类属性,而且,我打算从类中拉出方法到我的主,和使用它们进行数学计算,使用
1.-如何将变量P保存到相同的类属性中,以便进一步用于另一种方法?
class Program
{
static void Main(string[] args)
{
VolumenPrisma Herramienta = new VolumenPrisma();
VolumenPrisma.Registro();
}
}
namespace Poligono
{
public class VolumenPrisma
{
public static int Apotema, TamLado, NumLados, Altura, lado;
public static double cPerimetro (int NumLados, int lado){
double P;
P=(NumLados*lado);
return P;
}
public static void Registro(){
Console.WriteLine("Indique No. de lados: ");
VolumenPrisma.NumLados = Int32.Parse(Console.ReadLine());
Console.WriteLine("Indique tamanio de lado: ");
VolumenPrisma.lado = Int32.Parse(Console.ReadLine());
Console.WriteLine("----------------------------------------");
Console.WriteLine("Perimetro = {0} ",VolumenPrisma.cPerimetro(NumLados,lado));
}
}
}
答案 0 :(得分:1)
您的方法比OOP(面向对象编程)更像是一种模块化解决方案。 面向对象意味着创建一个对象,一个给定类的实例来完成一些特定的任务:
VolumenPrisma herramienta = new VolumenPrisma();
现在,这个实例有责任执行这项工作:
herramienta.Registro();
var perimeter = herramienta.Perimetro();
因为Perimetro()
方法会让您回到Registro()
中读取的两个值的简单计算,所以将其设计为属性是完美的:
class Program
{
static void Main(string[] args)
{
VolumenPrisma herramienta = new VolumenPrisma();
herramienta.Registro();
}
}
namespace Poligono
{
public class VolumenPrisma
{
private int numLados;
private int lado;
public double Perimetro
{
get { return numLados * lado; }
}
public void Registro()
{
Console.WriteLine("Indique No. de lados: ");
numLados = Int32.Parse(Console.ReadLine());
Console.WriteLine("Indique tamanio de lado: ");
lado = Int32.Parse(Console.ReadLine());
Console.WriteLine("----------------------------------------");
Console.WriteLine("Perimetro = {0} ", Perimetro);
}
}
}
答案 1 :(得分:0)
只需将P声明为变量以及您保留的所有其他变量,而不是本地变量。
public static int Apotema, TamLado, NumLados, Altura, lado, P;
public static double cPerimetro (int NumLados, int lado){
P=(NumLados*lado);
return P;
}
虽然如果你打算这样做,我建议使用比P更具描述性的变量名。
如果你只在课堂上使用P,你可以将其声明为私人:
public static int Apotema, TamLado, NumLados, Altura, lado;
private static int P;
public static double cPerimetro (int NumLados, int lado){
P=(NumLados*lado);
return P;
}