Generics C#

using System;
struct XY {
  T x;
  T y;
  public XY(T a, T b) {
    x = a;
    y = b;
  }
  public T X {
    get { return x; }
    set { x = value; }
  }
  public T Y {
    get { return y; }
    set { y = value; }
  }
}
class StructTest {
  public static void Main() {
    XY xy = new XY(1, 2);
    XY xy2 = new XY(8.0, 9.0);
    Console.WriteLine(xy.X + ", " + xy.Y);
    Console.WriteLine(xy2.X + ", " + xy2.Y);
  }
}