2016-09-19 50 views
-1

我有用int變量存儲十進制數的算法。我必須總結兩個十進制數。所以我想知道我可以避免重複轉換代碼,並使用相同的轉換代碼只有不同的存儲變量的功能。C#函數用相同的代碼執行與不同變量相同的代碼

namespace structSimple 
{ 
    class Program 
    { 

     struct decimalanBroj 
     { 
      public int cijeliDio; 
      public int decimalanDio; 
      public int potencija; 
     }; 

     static decimalanBroj baze() 
     { 
      String number = "100"; 
      int fromBase = 16; 
      int toBase = 10; 

      String result = Convert.ToString(Convert.ToInt32(number, fromBase), toBase); 
     } 

     static void Main(string[] args) 
     { 
      decimalanBroj d = new decimalanBroj(); 
      decimalanBroj e = new decimalanBroj(); 


      Console.WriteLine("Unesite cijeli dio broj: "); 
      d.cijeliDio = Convert.ToInt32(Console.ReadLine()); 
      Console.WriteLine("Unesite decimalna dio broj: "); 
      d.decimalanDio = Convert.ToInt32(Console.ReadLine()); 
      d.potencija = d.decimalanDio.ToString().Length; 
      Console.WriteLine(d.cijeliDio + (d.decimalanDio * (Math.Pow(10, -d.potencija)))); 


      Console.WriteLine("Unesite cijeli dio broj2: "); 
      e.cijeliDio = Convert.ToInt32(Console.ReadLine()); 
      Console.WriteLine("Unesite decimalna dio broj2: "); 
      e.decimalanDio = Convert.ToInt32(Console.ReadLine()); 
      e.potencija = e.decimalanDio.ToString().Length; 


      Console.WriteLine("Zbroj dva broja: {0}", 
       (d.cijeliDio + (d.decimalanDio * (Math.Pow(10, -d.potencija)))) + 
       (e.cijeliDio + (e.decimalanDio * (Math.Pow(10, -e.potencija))))); 




     } 
    } 
} 
+1

這並不編譯:'靜態decimalanBroj巴澤()'必須返回一個值。 –

回答

0

你可以用一個方法你的結構更改爲類做你的計算:

public class decimalanBroj 
{ 
    public int cijeliDio; 
    public int decimalanDio; 
    public int potencija; 

    public int Calculate() 
    { 
     return cijeliDio + (decimalanDio * (Math.Pow(10, -potencija)); 
    } 
}; 

現在你可以做你的calulation而不復制代碼所有的時間:

decimalanBroj d = new decimalanBroj(); 
... 
d.Calculate(); 
+1

如果我是你,我會告訴他如何將d.Calculate();的結果賦值給一個變量。他問的是如何爲不同的變量輸入重用一個函數 - 這意味着他真正的問題是他不知道函數參數是什麼。他無法知道他可以從他自己的功能中返回一個價值,並將其分配給某個東西。 –

0

添加方法爲你做:

static decimalanBroj GetDecimalanBroj() 
    { 
    var d = new decimalanBroj(); 
     Console.WriteLine("Unesite cijeli dio broj: "); 
     d.cijeliDio = Convert.ToInt32(Console.ReadLine()); 
     Console.WriteLine("Unesite decimalna dio broj: "); 
     d.decimalanDio = Convert.ToInt32(Console.ReadLine()); 
     d.potencija = d.decimalanDio.ToString().Length; 
     Console.WriteLine(d.cijeliDio + (d.decimalanDio * (Math.Pow(10, -d.potencija)))); 
     return d; 

    } 

然後調用該方法在main()這樣的:

 decimalanBroj d = GetDecimalanBroj(); 
     decimalanBroj e = GetDecimalanBroj(); 
相關問題