C# .Net Tutorial Interfaces

CoderSource.net
C# .Net Tutorial Interfaces
Rating:

Date: 5/1/2004 12:00:00 AM

C# .Net Tutorial Interfaces

   This C# Tutorial deals with interfaces in C# .Net. An Interface is a reference type and it contains only abstract members. Interface's members can be Events, Methods, Properties and Indexers. But the interface contains only declaration for its members. Any implementation must be placed in class that realizes them. The interface can't contain constants, data fields, constructors, destructors and static members. All the member declarations inside interface are implicitly public. 

Defining an Interface:

   Let us look at a simple example for c# interfaces. In this example interface declares base functionality of node object.

interface INode

string Text 

get;
set; 

object Tag 

get;
set; 

int Height

get;
set; 

int Width

get;
set; 

float CalculateArea(); 

}

   The above INode interface has declared a few abstract properties and function which should be implemented by the derived classes. 

//Sample for Deriving a class using a C# .Net interface -  c# tutorial

public class Node : INode 

public Node()
{}
public string Text

get
{
   return m_text;

set

   m_text = value; 

private string m_text; 
public object Tag

get

   return m_tag; 

set

   m_tag = value; 

private object m_tag = null; 
public int Height

get

   return m_height; 

set

   m_height = value; 

private int m_height = 0; 
public int Width

get

   return m_width; 

set

   m_width = value; 

private int m_width = 0; 

public float CalculateArea()

if((m_width<0)||(m_height<0))
    return 0; 

return m_height*m_width; 

}

   Now the above code has created a c# class Node that inherits from INode c# interface and implement all its members. A very important point to be remembered about c# interfaces is, if  some interface is inherited, the program must implement all its declared members. Otherwise the c# compiler throws an error.

   The above code was a simple example of c# interface usage. Now this has to be followed with some advanced details of interface building in C# .Net. The previous example used only names of methods or properties that have the same names as in interface. But there is another alternative method for writing the implementation for the members in class. It uses full method or property name e.g. INode.CalculateArea () {// implemetation}.

Multiple Inheritance using C# interfaces:

   Next feature that obviously needs to be explained is multiple inheritance using c# interfaces. This can be done using child class that inherits from any number of c# interfaces. The inheritance can also happen with a combination of a C# .Net class and c# interfaces. Now let us see a small piece of code that demonstrate us multiple inheritance using only interfaces as parent data types.

class ClonableNode : INode,ICloneable

public object Clone()
{
return null; 

// INode members 
}

   The above example created a class ClonableNode. It implements all the functionality of INode interface in the same way as it was done in Node class. Also it realizes Clone method only one item of IClonable interface of .NET library.

is Operator for C# .Net interfaces - C# Tutorial:

   At last a new C# operator that can be used to define that class should be explained. It is the is operator. Look at the following piece of code:

if(nodeC is INode)
     Console.WriteLine("nodeC is object of INode type");
else 
     Console.WriteLine("nodeC isn't object of INode type");

   In example nodeC object was created as ClonableNode type, but when we run program "if operator" returns true. It means that nodeC also is of INode type. 

   The Sample Source is downloadable here. An attached example can be compiled using .NET console. You only need to type a filename of your .cs file before csc command and it creates an executable version of it.

You Can Rate this Article, if you are Logged In      
 

More Links from CoderSource.net:

 
Refer to a Friend:

Your Details:

Name:     e-mail:

Friend Details:

Name:    e-mail:    


MENU
Home
MFC 
C++
.Net
WIN32
Programming
Forum
My Articles
Add to Google
Add to My Yahoo!
Welcome to Codersource.Net Login | Register | Faq  

SEARCH
Google
 

NOTES:


Thanks for visiting our CoderSource.net. This site will be improved with more articles. Interested visitors can also submit their articles through the Submit Article link.Your article will also be published after due consideration by the editor. 

© Copyright 2003. All rights on content reserved by CoderSource.net. Contact    About Us