public static T Exchange <T>(ref T location1, T value) where T : class { Interlocked._Exchange(__makeref(location1), __makeref(value)); return(value); }