public Vector(int x,int y,int z){
public override string ToString()
public static Vector operator +(Vector v1,Vector v2){
Vector v3 = new Vector();
public static Vector operator -(Vector v1,Vector v2){
Vector v3 = new Vector();
Console.WriteLine("({0},{1},{2})",this.x,this.y,this.z);
public void Print(Vector v){
Console.WriteLine("({0},{1},{2})",v.x,v.y,v.z);
public void Subtracting1(Vector v){
Console.WriteLine("({0},{1},{2})",this.x,this.y,this.z);
delegate void delegatTest(Vector v);
delegate void NumberChanger(Vector v);
delegate void del(Vector v);
public static void Main()
Vector v = new Vector(10,9,8);
Vector v1 = new Vector(1,2,3);
Console.WriteLine("v1 : (1,2,3)");
Vector v2 = new Vector(4,5,6);
Console.WriteLine("v2 : (4,5,6)");
Console.WriteLine("Adding the two vectors : ");
Console.WriteLine("Subtracting the two vectors : ");
delegatTest[] op={v1.Print,v2.Subtracting1};
for (int i = 0; i < op.Length; i++)
delegatTest d = new delegatTest(v.Print);
NumberChanger nc = delegate(Vector v4)
Console.WriteLine("Anonymous Method");
Console.WriteLine("x: "+(v4.x*2));
Console.WriteLine("y: "+(v4.y*2));
Console.WriteLine("z: "+(v4.z*2));