Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
// Demonstrating value types, reference types, and nullable reference types // --- Value types --- int count = 42; double pi = 3.14159; bool isActive = true; char grade = 'A'; // Struct: value-type semantics (copied on assignment) var point1 = new System.Drawing.Point(10, 20); var point2 = point1; // independent copy point2.X = 99; Console.WriteLine($"point1.X = {point1.X}"); // still 10 // --- Reference types --- var list1 = new List<int> { 1, 2, 3 }; var list2 = list1; // same reference list2.Add(4); Console.WriteLine($"list1.Count = {list1.Count}"); // 4 (shared object) // --- Nullable value types --- int? maybeNull = null; Console.WriteLine(maybeNull.HasValue); // False Console.WriteLine(maybeNull.GetValueOrDefault()); // 0 // --- Nullable reference types (requires <Nullable>enable</Nullable>) --- string? nullableStr = null; int length = nullableStr?.Length ?? 0; // null-conditional + null-coalescing Console.WriteLine($"Length: {length}"); // --- Type checking --- object obj = "hello"; if (obj is string s) Console.WriteLine($"String of length {s.Length}"); // --- Boxing and unboxing --- int num = 7; object boxed = num; // boxing int unboxed = (int)boxed; // unboxing Console.WriteLine(unboxed);
Result
Open