Fields, Methods, and Properties
Following example illustrates the use of Fields, Methods and Properties altogether.
Example
using System; namespace ConsoleApplication1 { class MyClass { public readonly string Name; private int intVal; public int Val { get { return intVal; } set { if (value >= 0 && value <= 10) intVal = value; else throw (new ArgumentOutOfRangeException("Val", value, "Val must be assigned a value between 0 and 10.")); } } public override string ToString() { return "Name: " + Name + "\nVal: " + Val; } private MyClass() : this("Default Name") { } public MyClass(string newName) { Name = newName; intVal = 0; } static void Main(string[] args) { Console.WriteLine("Creating object myObj..."); MyClass myObj = new MyClass("My Object"); Console.WriteLine("myObj created."); for (int i = -1; i <= 0; i++) { try { Console.WriteLine("\nAttempting to assign {0} ","to myObj.Val...", i); myObj.Val = i; Console.WriteLine("Value {0} assigned to myObj.Val.", myObj.Val); } catch (Exception e) { Console.WriteLine("Exception {0} thrown.", e.GetType().FullName); Console.WriteLine("Message:\n\"{0}\"", e.Message); } } Console.WriteLine("\nOutputting myObj.ToString()..."); Console.WriteLine(myObj.ToString()); Console.WriteLine("myObj.ToString() Output."); Console.ReadKey(); } } }