Оператор |
Описание |
& |
Оператор адрес (address-of) возвращает указатель, представляющий |
* |
Оператор разыменования (dereference) обозначает значение |
-> |
Оператор разыменования и доступа к члену (dereferencing and member access) используется для доступа к члену и разыменования указателя. |
Следующий пример покажется знакомым любому разработчику на С или C++. В нем я вызываю метод, принимающий два указателя на переменные типа
int
и изменяющий их значения перед возвратом управления вызывающей функции. Не сильно впечатляющая, но действительно наглядная иллюстрация применения указателей на С#.
// Компилируйте это приложение с параметром /unsafe using System;
class UnsafelApp {
public static unsafe void GetValues(int* x, int* y)
{
*x = 6;
*y = 42; }
public static unsafe void Main()
{
int a = 1; int b = 2; Console.WriteLine("Before GetValuesO : a = {0>, b = {1}",
a, b);
GetValues(&a, &b); Console.WriteLine("After GetValuesO : a = {0}, b = {1}",
a, b); } }
Этот пример необходимо скомпилировать с параметром компилятора /unsafe. Полученное приложение должно выдать:
Before GetValuesO : a = 1, b = 2 After GetValuesO : a = 6, b = 42