未处理NullReferenceException

hunterlight 2013-07-20 10:14:41
public class Complex
{
private double realPart, imaginaryPart;
public double RealPart
{ get { return realPart; } set { } }
public double ImaginaryPart
{ get { return imaginaryPart; } set { } }
public Complex(double realPart, double imaginaryPart)
//构造复数函数
{
this.realPart = realPart; this.imaginaryPart = imaginaryPart;
}


//复数取模值//

public static Double Modulus(Complex z)
{
double modular = new double();
modular=Math.Sqrt(z.realPart*z.realPart+z.imaginaryPart*z.imaginaryPart);
return modular;
}
public static Complex Conjugate(Complex z)
//复数的共轭
{
return new Complex(z.realPart, -z.imaginaryPart);
}
//复数的加减乘除//
private static Complex Add( Complex z1, Complex z2)
{
return new Complex(z1.realPart+z2.realPart,z1.imaginaryPart+z2.imaginaryPart);
}
private static Complex Subtract(Complex z1, Complex z2)
{
return new Complex(z1.realPart-z2.realPart,z1.imaginaryPart-z2.imaginaryPart);
}
private static Complex Multiply(Complex z1, Complex z2)
{
Complex z=new Complex (0,0);
z.realPart=z1.realPart*z2.realPart-z1.imaginaryPart*z2.imaginaryPart;
z.imaginaryPart=z1.imaginaryPart*z2.realPart+z1.realPart*z2.imaginaryPart;
return z;
}
private static Complex Divide(Complex z1, Complex z2)
{
Complex z=new Complex (0,0);
z.realPart=(z1.realPart*z2.realPart+z1.imaginaryPart*z2.imaginaryPart)/Modulus(z2);
z.imaginaryPart=z1.imaginaryPart*z2.realPart-z1.realPart*z2.imaginaryPart/Modulus(z2);
return z;
}
//加减乘除的重载//
public static Complex operator +(Complex z1,Complex z2)
{
return Add(z1,z2);
}
public static Complex operator -(Complex z1, Complex z2)
{
return Subtract(z1, z2);
}
public static Complex operator *(Complex z1, Complex z2)
{
return Multiply(z1, z2);
}
public static Complex operator /(Complex z1, Complex z2)
{
return Divide(z1, z2);
}
//将复数转化成弧度表示形式//
public double angle(Complex z1)
{
if (z1.realPart == 0)
{
if (z1.imaginaryPart > 0) return 90.0;
else if (z1.imaginaryPart == 0) return 0.0;
else return -90.0;
}
else if (z1.realPart < 0)
{
if (z1.imaginaryPart == 0) return 180d;
else if (z1.imaginaryPart > 0) return Math.Atan(z1.imaginaryPart / z1.realPart) * 180d / Math.PI + 180d;
else return Math.Atan(z1.imaginaryPart / z1.realPart) * 180d / Math.PI - 180d;
}
else return Math.Atan(z1.imaginaryPart / z1.realPart) * 180 / Math.PI;
}
}

红色字段报错
...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
please_call_me_J 2013-07-20
  • 打赏
  • 举报
回复
引用 7 楼 u011403909 的回复:
欢迎结贴。。。。
hunterlight 2013-07-20
  • 打赏
  • 举报
回复
引用 5 楼 juyangjia 的回复:
[quote=引用 4 楼 u011403909 的回复:]
你说哪一句代码???[/quote] 谢谢了 找到问题了 嘻嘻
hunterlight 2013-07-20
  • 打赏
  • 举报
回复
引用 5 楼 juyangjia 的回复:
[quote=引用 4 楼 u011403909 的回复:]
你说哪一句代码???[/quote] public static Complex Conjugate(Complex z)
please_call_me_J 2013-07-20
  • 打赏
  • 举报
回复
引用 4 楼 u011403909 的回复:
你说哪一句代码???
hunterlight 2013-07-20
  • 打赏
  • 举报
回复
引用 3 楼 juyangjia 的回复:
其实报错之后,就在错误提示的时候,你就能看到究竟是哪个变量为null,然后一步一步倒退回去找为null的原因
z是空的 其实我想知道为啥Complex z 中的Complex与Class Complex中的Complex都是浅蓝色的,我想要是没颜色的啊 也就是z只是定义的一个复数而已
please_call_me_J 2013-07-20
  • 打赏
  • 举报
回复
其实报错之后,就在错误提示的时候,你就能看到究竟是哪个变量为null,然后一步一步倒退回去找为null的原因
EnForGrass 2013-07-20
  • 打赏
  • 举报
回复
引用 1 楼 Chinajiyong 的回复:
Complex z对象为空啥,
有没有给z初始化或者实例化赋值
EnForGrass 2013-07-20
  • 打赏
  • 举报
回复
Complex z对象为空啥,

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧