这是从百度文库里找一个实例我加了一下注释,是一个结构,感觉写法跟类差不多,只是不用写属性,应该也不能继承吧。大家看看:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Vector
{
/// <summary>
/// 这是个结构,不是类
/// </summary>
struct Vector
{
//定义三个变量
public double x, y, z;
/// <summary>
/// 创建构造函数
/// </summary>
/// <param name="x">值参数x</param>
/// <param name="y">值参数y</param>
/// <param name="z">值参数z</param>
public Vector(double x, double y, double z)
{
this.x = x;
this.y = y;
this.z = z;
}
/// <summary>
/// 重载构造函数
/// </summary>
/// <param name="rhs">引用型参数vector对象</param>
public Vector(Vector rhs)
{
x = rhs.x;
y = rhs.y;
z = rhs.z;
}
/// <summary>
/// 重写ToString方法或者说是扩展ToString方法的功能
/// </summary>
/// <returns></returns>
public override string ToString()
{
return "(" + x + "," + y + "," + z + ")";
}
/// <summary>
/// “+”号运算符重载
/// </summary>
/// <param name="lhs">引用型参数vector对象</param>
/// <param name="rhs">引用型参数vector对象</param>
/// <returns></returns>
public static Vector operator +(Vector lhs, Vector rhs)
{
Vector result = new Vector(lhs);
result.x += rhs.x;
result.y += rhs.y;
result.z += rhs.z;
return result;
}
}
}
前台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Vector
{
class Program
{
static void Main(string[] args)
{
//定义vector结构类型的变量
Vector vect1, vect2, vect3;
//实例化结构对象
vect1 = new Vector(3.0, 3.0, 1.0);
vect2 = new Vector(2.0, -4.0, -4.0);
vect3 = vect1 + vect2;
//打印
Console.WriteLine("vect1=" + vect1.ToString());
Console.WriteLine("vect2=" + vect2.ToString());
Console.WriteLine("vect3=" + vect3.ToString());
Console.ReadKey();
}
}
}
执行结果:
这个实例,列出了对ToString方法的重写,和对"+"号运算符的重载。