I think you mean members of a static class .. and they are reference types if they are actually objects, otherwise they are just value types. a static class cannot be passed as I know. try running this code
class Program { static void Main(string[] args) { StaticClass.x = 89; Console.WriteLine(StaticClass.x); changeValue(StaticClass.x); Console.WriteLine(StaticClass.x); Console.ReadKey(); } static void changeValue(int x) { x = x + 1; } } { public static class StaticClass { public static int x { get; set; } } }
EDIT: -
the output is 89 in both cases EDIT: -
and yet, if you dig a little deep, a static class is basically a class with a private constructor and an unrelated state (variables) (unlike the example). so YES in theory this is a reference type
source share