illustrates casting objects : Casting Conversions « Language Basics « C# / C Sharp

C# / C Sharp
1. 2D Graphics
2. Collections Data Structure
3. Components
4. Database ADO.net
5. Development Class
6. Event
7. File Stream
8. GUI Windows Form
9. Language Basics
10. Network
11. Office
12. Regular Expressions
13. Services Event
14. Thread
15. Web Services
16. Windows
17. XML
Microsoft Office Word 2007 Tutorial
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
C# / CSharp Tutorial
ASP.Net
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
PHP
Python
SQL Server / T-SQL
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
C# / C Sharp » Language Basics » Casting ConversionsScreenshots 
illustrates casting objects
illustrates casting objects

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy

Publisher: Sybex;
ISBN: 0782129110
*/
/*
  Example7_11.cs illustrates casting objects
*/

using System;


// declare the MotorVehicle class (the base class)
class MotorVehicle
{

  public string model;

  public MotorVehicle(string model)
  {
    this.model = model;
  }

  public void Start()
  {
    Console.WriteLine(model + " started");
  }

}


// declare the Car class
class Car : MotorVehicle
{

  public bool convertible;

  public Car(string model, bool convertible:
  base(model)
  {
    this.convertible = convertible;
  }

}


// declare the Motorcycle class
class Motorcycle : MotorVehicle
{

  public bool sidecar;

  // define a constructor
  public Motorcycle(string model, bool sidecar:
  base(model)
  {
    this.sidecar = sidecar;
  }

  public void PullWheelie()
  {
    Console.WriteLine(model + " pulling a wheelie!");
  }

}


public class Example7_11
{

  public static void Main()
  {

    // create a Car object
    Car myCar = new Car("MR2"true);

    // cast myCar to MotorVehicle (upcast)
    MotorVehicle myMotorVehicle = (MotorVehiclemyCar;

    // myMotorVehicle only has a model field and Start() method
    // (no convertible field)
    Console.WriteLine("myMotorVehicle.model = " + myMotorVehicle.model);
    myMotorVehicle.Start();
    // Console.WriteLine("myMotorVehicle.convertible = " +
    //   myMotorVehicle.convertible);

    // create a Motorcycle object
    Motorcycle myMotorcycle = new Motorcycle("V-Rod"true);

    // cast myMotorcycle to MotorVehicle (upcast)
    MotorVehicle myMotorVehicle2 = (MotorVehiclemyMotorcycle;

    // myMotorVehicle only has a model field and Start() method
    // (no sidecar field or PullWheelie() method)
    Console.WriteLine("myMotorVehicle2.model = " + myMotorVehicle2.model);
    myMotorVehicle2.Start();
    // Console.WriteLine("myMotorVehicle2.sidecar = " +
    //   myMotorVehicle2.sidecar);
    // myMotorVehicle2.PullWheelie();

    // cast myMotorVehicle2 to Motorcycle (downcast)
    Motorcycle myMotorcycle2 = (MotorcyclemyMotorVehicle2;

    // myMotorCycle2 has access to all members of the Motorcycle class
    Console.WriteLine("myMotorcycle2.model = " + myMotorcycle2.model);
    Console.WriteLine("myMotorcycle2.sidecar = " + myMotorcycle2.sidecar);
    myMotorcycle2.Start();
    myMotorcycle2.PullWheelie();

    // cannot cast a Motorcyle object to the Car class because
    // their classes are not compatible
    // Car myCar2 = (Car) myMotorVehicle2;

  }

}


           
       
Related examples in the same category
1. An example that uses an implicit conversion operatorAn example that uses an implicit conversion operator
2. Use an explicit conversionUse an explicit conversion
3. The use of the cast operatorThe use of the cast operator
4. Casting int float and byte
5. User-Defined Conversions: How It Works: Conversion Lookup
6. Conversions: Numeric Types
7. Numeric Types: Checked Conversions
8. Conversions:Numeric Types:Checked Conversions
9. Conversions:Numeric Types:Conversions and Member LookupConversions:Numeric Types:Conversions and Member Lookup
10. Conversions:Numeric Types:Explicit Numeric ConversionsConversions:Numeric Types:Explicit Numeric Conversions
11. Conversions of Classes (Reference Types)\To an Interface the Object Might ImplementConversions of Classes (Reference Types)\To an Interface 
 the Object Might Implement
12. Conversions of Classes (Reference Types):To the Base Class of an ObjectConversions of Classes (Reference Types):To the Base Class of an Object
13. User-Defined Conversions:A Simple ExampleUser-Defined Conversions:A Simple Example
14. Classes and Pre and Post Conversions
15. Conversion Lookup
ww__w__.__j_a__va___2__s_._c__o_m_ | Contact Us
Copyright 2003 - 08 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.