Sealed Methods

image_pdfimage_print

   


using System;
   
public class Name {
  public string firstName;
  public string lastName;
   
  public Name(string firstName, string lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }
   
  public virtual void Accelerate() {
    Console.WriteLine("In Name Accelerate() method");
    Console.WriteLine(lastName + " accelerating");
  }
}
   
public class MyName : Name {
  public MyName(string firstName, string lastName) : base(firstName, lastName) {
  }
   
  sealed public override void Accelerate() {
    Console.WriteLine("In MyName Accelerate() method");
    Console.WriteLine(lastName + " accelerating");
  }
}
   
class Test{
  public static void Main() {
    Console.WriteLine("Creating a MyName object");
    MyName myMyName = new MyName("Toyota", "MR2");
   
    // call the MyName object's Accelerate() method
    Console.WriteLine("Calling myMyName.Accelerate()");
    myMyName.Accelerate();
  }
}

           
          


Illustrates sealed methods

image_pdfimage_print

   

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

Publisher: Sybex;
ISBN: 0782129110
*/
/*
  Example7_10.cs illustrates sealed methods
*/

using System;


// declare the MotorVehicle class
class MotorVehicle
{

  // declare the fields
  public string make;
  public string model;

  // define a constructor
  public MotorVehicle(string make, string model)
  {
    this.make = make;
    this.model = model;
  }

  // define the Accelerate() method
  public virtual void Accelerate()
  {
    Console.WriteLine("In MotorVehicle Accelerate() method");
    Console.WriteLine(model + " accelerating");
  }

}


// declare the Car class (derived from MotorVehicle)
class Car : MotorVehicle
{

  // define a constructor
  public Car(string make, string model) :
  base(make, model)
  {
    // do nothing
  }

  // override the Accelerate() method (sealed)
  sealed public override void Accelerate()
  {
    Console.WriteLine("In Car Accelerate() method");
    Console.WriteLine(model + " accelerating");
  }

}


public class Example7_10
{

  public static void Main()
  {

    // create a Car object
    Console.WriteLine("Creating a Car object");
    Car myCar = new Car("Toyota", "MR2");

    // call the Car object's Accelerate() method
    Console.WriteLine("Calling myCar.Accelerate()");
    myCar.Accelerate();

  }

}


           
          


Readonly Property

image_pdfimage_print
   
 
using System;

//VersionTest
public class VersionReporter {
    public static string version {
        get {
            return "2.0.0.0";
        }
    }

    public VersionReporter() {
    }
}


class VersionOutput {
    static void Main(string[] args) {
        string ver = VersionReporter.version;

        Console.WriteLine("Using version {0}", ver);
    }
}

    


Demonstrate readonly

image_pdfimage_print

/*
C#: The Complete Reference
by Herbert Schildt

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/

// Demonstrate readonly.

using System;

class MyClass {
public static readonly int SIZE = 10;
}

public class DemoReadOnly {
public static void Main() {
int[]nums = new int[MyClass.SIZE];

for(int i=0; i

The use of readonly fields

image_pdfimage_print

   

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

Publisher: Sybex;
ISBN: 0782129110
*/

/*
  Example6_3.cs illustrates the use of readonly fields
*/


// declare the Car class
class Car
{

  // declare a readonly field
  public readonly string make;

  // declare a static readonly field
  public static readonly int wheels = 4;

  // define a constructor
  public Car(string make)
  {
    System.Console.WriteLine("Creating a Car object");
    this.make = make;
  }

}


public class Example6_3
{

  public static void Main()
  {

    System.Console.WriteLine("Car.wheels = " + Car.wheels);
    // Car.wheels = 5;  // causes compilation error

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

    System.Console.WriteLine("myCar.make = " + myCar.make);
    // myCar.make = "Porsche";  // causes compilation error

  }

}

           
          


ReadOnly Fields

image_pdfimage_print
   
 
using System;
using System.Collections.Generic;
using System.Text;

class Tire {
    public static readonly Tire GoodStone = new Tire(90);
    public static readonly Tire FireYear = new Tire(100);

    public int manufactureID;

    public Tire() { }
    public Tire(int ID) { manufactureID = ID; }
}

class Employee {
    public readonly string SSN;

    public Employee(string empSSN) {
        SSN = empSSN;
    }
}

class Program {
    static void Main(string[] args) {
        Tire myTire = Tire.FireYear;
        Console.WriteLine("ID of my tire is: {0}", myTire.manufactureID);

        Employee e = new Employee("111-22-1111");
        // e.SSN = "222-22-2222"; // error!
    }
}

    


User-defined public method

image_pdfimage_print
   




using System;

public class MaximumFinder
{
   public void DetermineMaximum()
   {
      Console.WriteLine( "Enter three floating-point values,
 pressing 'Enter' after each one: " );
      double number1 = Convert.ToDouble( Console.ReadLine() );
      double number2 = Convert.ToDouble( Console.ReadLine() );
      double number3 = Convert.ToDouble( Console.ReadLine() );

      double result = Maximum( number1, number2, number3 );

      Console.WriteLine( "Maximum is: " + result );
   }
   public double Maximum( double x, double y, double z )
   {
      double maximumValue = x; 

      if ( y > maximumValue )
         maximumValue = y;

      if ( z > maximumValue )
         maximumValue = z;

      return maximumValue;
   } 
} 
public class MaximumFinderTest
{
   public static void Main( string[] args )
   {
      MaximumFinder maximumFinder = new MaximumFinder();
      maximumFinder.DetermineMaximum();
   }
}