This documentation is archived and is not being maintained.

-> Operator (C# Reference)

The -> operator combines pointer dereferencing and member access.

An expression of the form,


(where x is a pointer of type T* and y is a member of T) is equivalent to,


The -> operator can be used only in code that is marked as unsafe.

The -> operator cannot be overloaded.

// compile with: /unsafe

struct Point
    public int x, y;

class MainClass12
    unsafe static void Main()
        Point pt = new Point();
        Point* pp = &pt;
        pp->x = 123;
        pp->y = 456;
        Console.WriteLine("{0} {1}", pt.x, pt.y);
123 456