protected void AddField <T>(string name) where T : struct { string fname = string.Format("{0}.{1}[{2}]", Name, name, index ?? ""); fieldNames.Add(fname); Parent.AddField <T>(fname); }