The compiler error speaks for itself - you can't pass a property by reference; only a variable.
From the C# spec section 10.6.1.2:
When a formal parameter is a reference parameter, the corresponding argument in a method invocation must consist of the keyword ref
followed by a variable-reference (section 5.3.3) of the same type as the formal parameter.
A property access expression doesn't count as a variable-reference.
You probably want:
var tmp = Globals.NameList;
Array.Reize(ref tmp, 0);
Globals.NameList = tmp;
Note that VB does allow passing a property by reference, but it acts like the above. In particular, each assignment within the method will only affect a temporary value, rather than being a call to the relevant setter.
Also note that having a class called Globals
with mutable public properties is a design smell...