base class c# code example

Example 1: class in c#

public class Car
{  
    // fields
    public bool isDriving = false;
    
    // constructor
    public Car( string make )
    {
        Make = make;
    }
	
    // properties
    private string _make = string.Empty;
    public string Make
    {
        get { return _make; }
        set { _make = value; } 
    }
    
    // methods
    public void drive()
    {
        if( isDriving )
        {
			// Car is already moving
        }
        else
		{
            // start driving the car
            isDriving = true;
    	}        
    }

    public void stop()
    {
		if( isDriving )
		{
			// stop the car 
			isDriving = false;
		}
        else
        {
			// car is already not moving
        }        
    }      
}

// ---
// An example of using this class in a console app

using System;
					
public class Program
{
	public static void Main()
	{		
        // construct a new class of type Car and set the Make
      	// property to "VW" using the constructor.
		Car newCar = new Car( "VW" );
		
      	// display the make of our new car
		Console.WriteLine( newCar.Make );
		
      	// call the drive method of the car class
		newCar.drive();		
		
      	// display the value of the isDriving property to
		Console.WriteLine( newCar.isDriving );
		
      	// call the stop method of the car class
		newCar.stop();
		
      	// display the value of the isDriving property
		Console.WriteLine( newCar.isDriving );
	}
}

// the class 
public class Car
{  
    // fields
    public bool isDriving = false;
    
    // constructor w
    public Car( string make )
    {
        Make = make;
    }
	
    // properties
    private string _make = string.Empty;
    public string Make
    {
        get { return _make; }
        set { _make = value; } 
    }
    
    // methods
    public void drive()
    {
        if( isDriving )
        {
        		// Car is already moving
        }
        else
		{
            // start driving the car
            isDriving = true;
    	}        
    }

    public void stop()
    {
		if( isDriving )
		{
			// stop the car 
			isDriving = false;
		}
        else
        {
			// car is already not moving
        }        
    }      
}

Example 2: acess base class in c#

using System;

public class A
{
   private int value = 10;

   public class B : A
   {
       public int GetValue()
       {
           return this.value;
       }
   }
}

public class C : A
{
//    public int GetValue()
//    {
//        return this.value;
//    }
}

public class Example
{
    public static void Main(string[] args)
    {
        var b = new A.B();
        Console.WriteLine(b.GetValue());
    }
}
// The example displays the following output:
//       10

Example 3: list of 2 different inherent classes c#

// a Pseudo-example using interfaces. <--- Worked great for me!

public interface IPrinter
{
   void Send();
   string Name { get; }
}

public class PrinterType1 : IPrinter
{
  public void Send() { /* send logic here */ }
  public string Name { get { return "PrinterType1"; } }
}

public class PrinterType2 : IPrinter
{
  public void Send() { /* send logic here */ }
  public string Name { get { return "Printertype2"; } }

  public string IP { get { return "10.1.1.1"; } }
}


// ...
// then to use it
var printers = new List<IPrinter>();

printers.Add(new PrinterType1());
printers.Add(new PrinterType2());

foreach(var p in printers)
{
  p.Send();

  var p2 = p as PrinterType2;

  if(p2 != null) // it's a PrinterType2... cast succeeded
    Console.WriteLine(p2.IP);
}

Example 4: c# inheritance

// ----------------- INHERITANCE and POLYMORPHISM ------------------ //


// ----- TOP CLASS ----- //
class Parent
{
  protected int ID;   // This will be inherited by the child class
  
  public Parent()   // This constructor will automatically be called when we create a child object 
  {
    ID = 0;
  }
  
  public Parent(int Id)   // This constructor will automatically be called when we create a child object 
  {
    ID = Id;
  }
  
  
  public virtual void Method1 (string someInput)   // The "virtual" keyword allows you to override this method
  {
    Console.WriteLine("Hi there, this method will be inherited");
    Console.WriteLine(someInput);
  }
  
  protected void Method2 ()
  {
    Console.WriteLine("Hi there, this method will also be inherited");
  }
  
    protected void Method3 ()
  {
    Console.WriteLine("Hi there, this method will also be inherited");
  }
  
}


// ----- LOWER CLASS ----- //
class Child : Parent
{
	pritave int count;    // This class has both the "count" and "ID" properties, since the "ID" was inherited
    
    
	public Parent()   // Both the parent and child base constructors are called  
    {
      count = 0;
    }
    
    
    public Parent(int Id) : base (Id)  // Both the parent and child second constructors are called  
    {
      count = 0;
    }
    
    
    public override void Method1 (string someInput)  // This will override the original Method1 funtion
    {	
    	base.Method1 (someInput);  // This will call the original method from the parent that now, also belongs to the child 
        // ... some code ...
    }
    
        
    protected new void Method2 ()   // This will not override but will instead make it a priority over the other Method2() 
    {                               // This is only used if you create an object like: Parent obj = new Child() and not if you create: Child obj = new Child()  
      Console.WriteLine("Make it do something different");
    }
    
    
    public sealed override void Method3 ()   // This "sealed" keyword will stop other subclasses that derive from the child, from overriding this method again 
    {                              
      Console.WriteLine("Make it do something different");
    }
    
    
	public void Method4 (string someInput, int count)
    {	
    	base.Method1 (someInput);  //Or just: Method1 (someInput) since, in this case, the methods are different
        this.count = count;
    }

}

Example 5: Base class c#

class Motore:Veicoli
    { 
        public bool Cavalletto { get; set; }
       
        public Motore (String marca, String modello, int cilindrata, bool cavalletto): base (marca,modello,cilindrata)
        { 
            this.Cavalletto = cavalletto;
        }

        override
        public void Accelera(double velocitacorrente )
        {
            this.VelocitaCorrente += velocitacorrente;
        }
    }