C#练习题“定义完整的complexNumber类,在其中重载加减乘除等基本算术操作符,相等与不等操作符(比较复数的实部和虚部是否均相等),以及大小比较操作符(比较复数模的大小)。”
解决该问题,我所写出的代码为:
namespace ConsoleApp1
{
#pragma warning disable CS0660 // 类型定义运算符 == 或运算符 !=,但不重写 Object.Equals(object o)
public class ComplexNumber
#pragma warning restore CS0660 // 类型定义运算符 == 或运算符 !=,但不重写 Object.Equals(object o)
{
private double x, y;
public double X
{
get { return x; }
set { x = value; }
}
public double Y //虚数部分
{
get { return y; }
set { y = value; }
}
public ComplexNumber(double x, double y)
{
this.x = x;
this.y = y;
}
public static ComplexNumber operator +(ComplexNumber c1, ComplexNumber c2)
{
return new ComplexNumber(c1.x + c2.x, c1.y + c2.y);
}
public static ComplexNumber operator -(ComplexNumber c1, ComplexNumber c2)
{
return new ComplexNumber(c1.x - c2.x, c1.y - c2.y);
}
public static bool operator ==(ComplexNumber c1, ComplexNumber c2)
{
return c1.x == c2.x && c1.y == c2.y;
}
public static bool operator !=(ComplexNumber c1, ComplexNumber c2)
{
return c1.x != c2.x || c1.y != c2.y;
}
public static bool operator >(ComplexNumber c1, ComplexNumber c2)
{
double a = c1.x * c1.x + c1.y * c1.y;
double b = c2.x * c2.x + c2.y * c2.y;
return a > b;
}
public static bool operator >=(ComplexNumber c1, ComplexNumber c2)
{
double a = c1.x * c1.x + c1.y * c1.y;
double b = c2.x * c2.x + c2.y * c2.y;
return a == b || a > b;
}
public static bool operator <(ComplexNumber c1, ComplexNumber c2)
{
return !(c1 >= c2);
}
public static bool operator <=(ComplexNumber c1, ComplexNumber c2)
{
return !(c1 > c2);
}
public override bool Equals(object obj)
{
return base.Equals(obj);
}
public override int GetHashCode()
{
return base.GetHashCode();
}
public override string ToString()
{
return base.ToString();
}
}
}
在修改完一些小错误后,代码逻辑基本正确,但是最后一个问题仍然无法解决
在网络上查找到更改运行环境到”类库“但是会出现新问题
所以这个缺少”Main“的错误到底怎么解决,是代码缺少东西吗
求各位大神帮忙解决,感激不尽~~~
你只有一个类,没有程序入口。
你可以定义一个
static void Main(string[] args)
{
//在这里可以调用
ComplexNumber cn = new ComplexNumber(1, 2);
...
}