¿C# tiene punteros?

No hay punteros porque los punteros no son seguros. Por ejemplo, si se supone que una clase es .

A * A = new A(); En este momento, A debe eliminar tanto A como la última A.

Es demasiado problema. Si no se elimina, se perderá memoria, por lo que C# imita a Java, no hay punteros, solo referencias, que son invisibles.