using System;namespace OperatorOvlApplication {class Box {private double length;// Length of a boxprivate double breadth;// Breadth of a box
编程学习网为您整理以下代码实例,主要实现:C#重载和非重载运算符,希望可以帮到各位朋友。
using System;
namespace OperatorOvlApplication {
class Box {
private double length; // Length of a Box
private double breadth; // Breadth of a Box
private double height; // Height of a Box
public double getVolume() {
return length * breadth * height;
}
public voID setLength( double len ) {
length = len;
}
public voID setBreadth( double bre ) {
breadth = bre;
}
public voID setHeight( double hei ) {
height = hei;
}
// Overload + operator to add two Box objects.
public static Box operator+ (Box b, Box c) {
Box Box = new Box();
Box.length = b.length + c.length;
Box.breadth = b.breadth + c.breadth;
Box.height = b.height + c.height;
return Box;
}
public static bool operator == (Box lhs, Box rhs) {
bool status = false;
if (lhs.length == rhs.length && lhs.height == rhs.height && lhs.breadth == rhs.breadth) {
status = true;
}
return status;
}
public static bool operator !=(Box lhs, Box rhs) {
bool status = false;
if (lhs.length != rhs.length || lhs.height != rhs.height || lhs.breadth != rhs.breadth) {
status = true;
}
return status;
}
public static bool operator <(Box lhs, Box rhs) {
bool status = false;
if (lhs.length < rhs.length && lhs.height < rhs.height && lhs.breadth < rhs.breadth) {
status = true;
}
return status;
}
public static bool operator >(Box lhs, Box rhs) {
bool status = false;
if (lhs.length > rhs.length && lhs.height > rhs.height && lhs.breadth > rhs.breadth) {
status = true;
}
return status;
}
public static bool operator <=(Box lhs, Box rhs) {
bool status = false;
if (lhs.length <= rhs.length && lhs.height <= rhs.height && lhs.breadth <= rhs.breadth) {
status = true;
}
return status;
}
public static bool operator >=(Box lhs, Box rhs) {
bool status = false;
if (lhs.length >= rhs.length && lhs.height >= rhs.height && lhs.breadth >= rhs.breadth) {
status = true;
}
return status;
}
public overrIDe string ToString() {
return String.Format("({0}, {1}, {2})", length, breadth, height);
}
}
class Tester {
static voID Main(string[] args) {
Box Box1 = new Box(); // Declare Box1 of type Box
Box Box2 = new Box(); // Declare Box2 of type Box
Box Box3 = new Box(); // Declare Box3 of type Box
Box Box4 = new Box();
double volume = 0.0; // Store the volume of a Box here
// Box 1 specification
Box1.setLength(6.0);
Box1.setBreadth(7.0);
Box1.setHeight(5.0);
// Box 2 specification
Box2.setLength(12.0);
Box2.setBreadth(13.0);
Box2.setHeight(10.0);
//displaying the Boxes using the overloaded ToString():
Console.Writeline("Box 1: {0}", Box1.ToString());
Console.Writeline("Box 2: {0}", Box2.ToString());
// volume of Box 1
volume = Box1.getVolume();
Console.Writeline("Volume of Box1 : {0}", volume);
// volume of Box 2
volume = Box2.getVolume();
Console.Writeline("Volume of Box2 : {0}", volume);
// Add two object as follows:
Box3 = Box1 + Box2;
Console.Writeline("Box 3: {0}", Box3.ToString());
// volume of Box 3
volume = Box3.getVolume();
Console.Writeline("Volume of Box3 : {0}", volume);
//comparing the Boxes
if (Box1 > Box2)
Console.Writeline("Box1 is greater than Box2");
else
Console.Writeline("Box1 is greater than Box2");
if (Box1 < Box2)
Console.Writeline("Box1 is less than Box2");
else
Console.Writeline("Box1 is not less than Box2");
if (Box1 >= Box2)
Console.Writeline("Box1 is greater or equal to Box2");
else
Console.Writeline("Box1 is not greater or equal to Box2");
if (Box1 <= Box2)
Console.Writeline("Box1 is less or equal to Box2");
else
Console.Writeline("Box1 is not less or equal to Box2");
if (Box1 != Box2)
Console.Writeline("Box1 is not equal to Box2");
else
Console.Writeline("Box1 is not greater or equal to Box2");
Box4 = Box3;
if (Box3 == Box4)
Console.Writeline("Box3 is equal to Box4");
else
Console.Writeline("Box3 is not equal to Box4");
Console.ReadKey();
}
}
}
沃梦达教程
本文标题为:C#重载和非重载运算符
基础教程推荐
猜你喜欢
- C#冒泡排序程序 1970-01-01
- C# do...while循环 1970-01-01
- C#运算符优先级 1970-01-01
- 在ASP.NET Core中将路由和主体中的多个参数绑定到一个模型 2022-10-19
- C#封装public访问修饰符 1970-01-01
- C# ArrayList类 1970-01-01
- C#检查两个矩阵是否相同 1970-01-01
- C#按值传递参数 1970-01-01
- C#检查当前线程的状态 1970-01-01
- C#带参数的构造函数 1970-01-01