C#實現乘冪函數


  1. 首先,直接給出函數的具體實現,如下:
        static double Power(double baseNume, int exp)
        {
            if (baseNume.Equals(0))
            {
                throw new NullBaseException();
            }
            else
            {
                double mul = 1.0;
                if (exp != 0)
                {
                    while (exp > 0)
                    {
                        mul *= baseNume;
                        exp--;
                    }
                }
                else
                {
                    mul = baseNume;
                }
                return mul;
            }
        }

  1. 在上面的函數中,可以發現我拋出了一個異常,叫做 NullBaseException,這個異常是我自己定義的,系統中沒有給出。那么問題來了,如何在C#中自定義異常呢?

  1. 在C#中自定義異常,可以采用繼承系統異常並重寫的機制,如下所示(注意其中的構造函數):
using System;

class NullBaseException : Exception
{
    public NullBaseException(
        string message = "The Base should not be Null or zero!"
    ) :
        base(message)
    {
        //pass
    }

    public override string Message
    {
        get
        {
            return base.Message;
        }
    }
}

  1. 由是,即可完成一個簡單的乘冪函數,而且其運行效率也比較高。最后給出完整的代碼,包含測試部分:
using System;

namespace PowerFunc
{
    class Program
    {
        static void Main(string[] args)
        {
            double res = Power(5.5, 3);
            Console.WriteLine (res);
        }

        static double Power(double baseNume, int exp)
        {
            if (baseNume.Equals(0))
            {
                throw new NullBaseException();
            }
            else
            {
                double mul = 1.0;
                if (exp != 0)
                {
                    while (exp > 0)
                    {
                        mul *= baseNume;
                        exp--;
                    }
                }
                else
                {
                    mul = baseNume;
                }
                return mul;
            }
        }
    }
}





作者:艾孜爾江


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM