Существуют ли указатели в .NET?

Я хочу знать, существуют ли указатели в технологии .NET. Если да, есть ли пример для указателей в C #?

Пожалуйста, наставьте меня.

9
задан Joachim Sauer 31 August 2010 в 12:11
поделиться

4 ответа

Да, вы можете использовать указатели, если используете небезопасный код. Подробнее см. в этом разделе MSDN: Небезопасный код и указатели (Руководство по программированию на C#)

2
ответ дан 4 December 2019 в 07:22
поделиться

Да, указатели существуют.

Ссылки на самом деле являются указателями, но они особенные в том смысле, что сборщик мусора знает о них и изменяет их при перемещении объектов.

Указатели можно использовать в небезопасном коде, но тогда вы должны убедиться, что сборщик мусора не перемещает то, на что вы указываете.

Пример:

string x = "asdf";
unsafe {
  fixed (char* s = x) {
    char* p = s;
    for (int i = 0; i < 4; i++) {
      Console.WriteLine(*p);
      p++;
    }
  }
}

Обратите внимание, что управляемый объект, к которому вы хотите получить доступ через указатель, должен быть защищен от перемещения с помощью команды fixed и что компилятор не позволит вам изменить указатель, который вы получаете, поэтому, если вам нужен изменяемый указатель, вы должны его скопировать.

Вам необходимо включить небезопасный код в настройках вашего проекта, чтобы использовать ключевое слово unsafe.

5
ответ дан 4 December 2019 в 07:22
поделиться

Да, есть. Вы можете начать с этой ссылки.

1
ответ дан 4 December 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: