You shouldn't be using a structure, plain and simple. Tour tTrackPoint type should be a class. Structures have to obey certain rules and if your type can't obey those rules then it can't be a structure. You can't initialise fields of a structure where they're declared and using a constructor is not a solution because you can't enforce use of that constructor.