- 首先,直接给出函数的具体实现,如下:
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;
}
}
}
}
作者:艾孜尔江