I happened to encounter this trouble while trying to pass reference of a Property.
public class LinkedListQ : QNode
private QNode head = null;
public QNode Head
static void Main(string args)
LinkedListQ que = new LinkedListQ();
que.ReverseList(ref que.Head); //Error "A property, indexer or dynamic member access may not be passed as an out or ref parameter"
The reason as per MSDN is - Properties are not variables. They are methods, and cannot be passed to ref parameters.
The workaround I figured out is to change the head variable to internal in order to be accessible from Program class and pass head variable reference instead Property.
internal QNode head = null;
que.ReverseList(ref que.head); //Works fine