Я хочу знать, существуют ли указатели в технологии .NET. Если да, есть ли пример для указателей в C #?
Пожалуйста, наставьте меня.
Да, вы можете использовать указатели, если используете небезопасный
код. Подробнее см. в этом разделе MSDN: Небезопасный код и указатели (Руководство по программированию на C#)
Да, указатели существуют.
Ссылки на самом деле являются указателями, но они особенные в том смысле, что сборщик мусора знает о них и изменяет их при перемещении объектов.
Указатели можно использовать в небезопасном коде, но тогда вы должны убедиться, что сборщик мусора не перемещает то, на что вы указываете.
Пример:
string x = "asdf";
unsafe {
fixed (char* s = x) {
char* p = s;
for (int i = 0; i < 4; i++) {
Console.WriteLine(*p);
p++;
}
}
}
Обратите внимание, что управляемый объект, к которому вы хотите получить доступ через указатель, должен быть защищен от перемещения с помощью команды fixed
и что компилятор не позволит вам изменить указатель, который вы получаете, поэтому, если вам нужен изменяемый указатель, вы должны его скопировать.
Вам необходимо включить небезопасный код в настройках вашего проекта, чтобы использовать ключевое слово unsafe
.