C#函数在同一代码中使用不同变量执行相同的代码

时间:2016-09-19 13:18:31

标签: c# function duplicates

我有使用int变量存储十进制数的算法。我必须将两个十进制数相加。所以我想知道我可以避免重复转换代码,并使用具有相同转换代码的函数,只有不同的存储变量。

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 ) ))));




        }
    }
}

2 个答案:

答案 0 :(得分:0)

您可以使用执行计算的方法将结构更改为类:

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

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

现在你可以在不复制代码的情况下进行计算:

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

答案 1 :(得分: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();