static void Main(string[] args) { //value types bool valType1 = true; byte valType2 = 127; char valType3 = 'a'; double valType4 = 3.14159265359; float valType5 = 3.14f; int valType6 = 42; long valType7 = 999999999; short valType8 = 9999; ValueMethod(valType1, valType2, valType3, valType4, valType5, valType6, valType7, valType8); Console.WriteLine(valType1); Console.WriteLine(valType2); Console.WriteLine(valType3); Console.WriteLine(valType4); Console.WriteLine(valType5); Console.WriteLine(valType6); Console.WriteLine(valType7); Console.WriteLine(valType8); //reference types int[] array = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; MyInterface myInterface = null; Object thing = new Object(); String word = "cat"; ReferenceMethod(array, ref myInterface, ref thing, ref word); Console.WriteLine("\n[" + string.Join(", ", array) + "]"); if (myInterface == null) { Console.WriteLine("It doesn't work: null"); } else { myInterface.Method(); } if (thing == null) { Console.WriteLine("null"); } else { Console.WriteLine(thing); } Console.WriteLine(word + "\n"); }