- 首先,直接給出函數的具體實現,如下:
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;
}
}
- 在上面的函數中,可以發現我拋出了一個異常,叫做
NullBaseException
,這個異常是我自己定義的,系統中沒有給出。那么問題來了,如何在C#中自定義異常呢?
- 在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;
}
}
}
- 由是,即可完成一個簡單的乘冪函數,而且其運行效率也比較高。最后給出完整的代碼,包含測試部分:
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;
}
}
}
}
作者:艾孜爾江