Thanks for brining my attention to this mbenoni7. I have updated the article to be more correct.
You are however not quite right, nor was I so I not holding it against you. We can all learn something new.
C# does have pointer support, but not on the level with Go. As I point out in the updated version there is a string of caveats to use pointers in C#, which simply does not apply to Go.
Going between stack and heap while using pointers is seamless and safe in Go. That is not the case in C#. In Go e.g. I can take a pointer to a stack allocated object, but if escape analysis determines that the object escapes e.g. the function then the object is moved to the heap, but the pointer still works just fine.
Pointer usage in C# requires block of regions marked as unsafe, and pointing to garbage collected objects can only be done for a limited time using a fixed scope.
Go has no such limitations. Pointers can be to point to garbage collected objects through the whole lifetime of the program. Pointers work together with garbage collection. In C# pointers and garbage collection lives in separate worlds.
Thus I don't think you can compare C# pointer support to Go. In C# it is more like an escape hatch to deal with certain tricky problems which are hard without pointers. In Go pointer is a natural part of the language you use all the time.