2016-09-19 66 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(); 
相关问题