2015-06-06 36 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); 
     } 
    } 
} 
相關問題