This section on converting between types is specific to C#. VB .NET handles type conversion very differently and should be taken into consideration if VB .NET is your primary programming language. I’ll be briefly looking into converting between types, Boxing and what it is and implement a conversion operator.
override
Applying What We Have Learned So Far

The following code is from a Visual Studio 2008 C# Console application named CreateStruct. The code is from the Program.cs file. It illustrates what we have read until now, in a working application. The output of the Console application when run will be “John Mora (Male), age 32, 1234567890, Home”. If you ran this application and did not have read permissions on C:\boot.ini you would get an exception. The “[Serializable]” attribute allows the Manager class (which derives from the Person class) to be serialized, which will be covered later.
Lesson 3: Constructing Classes

Now we get to the meat and potatoes of object oriented programming. All programs,except the simplest, require constructing one or more custom classes with multiple properties and methods for performing tasks related to the object. I now discuss how to make custom classes.
Using Common Reference Types - continued

Strings and StringBuilders
One of the built in reference types within the .NET Framework you will commonly use is the System.String type. System.String has a set of members for manipulating text. For example here is a simple quick method for finding and replacing text:
Chapter 1: Lesson 1: Using Value Types

Value types are variables which contain their data directly as opposed to reference types which store only a reference to the data stored elsewhere. Instances of value types are stored in an area of the memory called the “stack” where the runtime can manipulate them quickly with minimal overhead.