2015-06-06 34 views
1

我一直在尝试使用类编写我的第一个程序,我在Visual Studio中对C#进行了新修改,并且还值得一提的是它已经有一段时间了(2年)因为我使用OOP Im寻找一种通过练习来实现它的方法,它是一个计算poligon的面积,周长和体积的简单程序。在C#中使用类的第一步,在另一个方法中使用方法内部变量

我还没有能够修改类的属性,即使我得到没有错误,我没有得到任何值到我的类属性,也,我打算拉出从我的方法从我的主,并用它们来做数学运算,使用

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

有限公司你是否让它变小,更专注于你的问题?它包含多个'ReadLine()'和许多不相关的代码。 –

+0

确定im im on – GoatZero

+0

我在我的机器上试过这个,它确实写入了属性值。你为什么认为它不是? – paulpdaniels

回答

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;  
} 
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); 
     } 
    } 
} 
相关问题