Я недавно видел пару проектов с открытым исходным кодом, которые действительно делают это; вернуть небезопасный указатель из функции, такой как: "int * input = this.someIterator.GetUnsafePtr ()".
Насколько я понимаю, это должно быть совершенно неправильно. Небезопасные указатели могут быть получены только через «фиксированные» операторы, и, конечно, те, которые возвращены из функции, больше не будут закреплены (они «потеряют» объявленную область видимости), что в конечном итоге приведет к их сборке мусора.
Но тогда я не помню, чтобы компилятор тоже предупреждал об этом, так зачем использовать фиксированное выражение, если вы действительно можете иметь «закрепленные» указатели повсюду?