c#函数,在相同的代码中用不同的变量执行相同的代码

本文关键字:代码 变量 执行 函数 | 更新日期: 2023-09-27 18:07:31

我有一个算法,存储十进制数与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 ) ))));


        }
    }
}

c#函数,在相同的代码中用不同的变量执行相同的代码

你可以把你的结构改成一个类,用一个方法来做你的计算:

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

Add Method for you:

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