Aspdotnet-Suresh

aspdotnet-suresh offers C#.net articles and tutorials,csharp dot net,asp.net articles and tutorials,VB.NET Articles,Gridview articles,code examples of asp.net 2.0 /3.5,AJAX,SQL Server Articles,examples of .net technologies

Introduction to Object Oriented Programming Concepts (OOPS) in C#.net

Apr 16, 2010
OOPS Concepts

Class:

 It is a collection of objects.

Object:

It is a real time entity.
An object can be considered a "thing" that can perform a set of related activities. The set of activities that the object performs defines the object's behavior. For example, the hand can grip something or a Student (object) can give the name or address. In pure OOP terms an object is an instance of a class


The above template describe about object Student
Class is composed of three things name, attributes, and operations

public class student
{
}
student objstudent=new student ();

According to the above sample we can say that Student object, named objstudent, has created out of the student class.

In real world you will often find many individual objects all of the same kind. As an example, there may be thousands of other bicycles in existence, all of the same make and model. Each bicycle has built from the same blueprint. In object-oriented terms, we say that the bicycle is an instance of the class of objects known as bicycles. In the software world, though you may not have realized it, you have already used classes. For example, the Textbox control, you always used, is made out of the Textbox class, which defines its appearance and capabilities. Each time you drag a Textbox control, you are actually creating a new instance of the Textbox class.

Encapsulation:

Encapsulation is a process of binding the data members and member functions into a single unit.

Example for encapsulation is class. A class can contain data structures and methods.
Consider the following class

public class Aperture
{
public Aperture ()
{
}
protected double height;
protected double width;
protected double thickness;
public double get volume()
{
Double volume=height * width * thickness;
if (volume<0)
return 0;
return volume;
}
}

In this example we encapsulate some data such as height, width, thickness and method Get Volume. Other methods or objects can interact with this object through methods that have public access modifier

Abstraction:

Abstraction is a process of hiding the implementation details and displaying the essential features.

Example1: A Laptop consists of many things such as processor, motherboard, RAM, keyboard, LCD screen, wireless antenna, web camera, usb ports, battery, speakers etc. To use it, you don't need to know how internally LCD screens, keyboard, web camera, battery, wireless antenna, speaker’s works.  You just need to know how to operate the laptop by switching it on. Think about if you would have to call to the engineer who knows all internal details of the laptop before operating it. This would have highly expensive as well as not easy to use everywhere by everyone.

So here the Laptop is an object that is designed to hide its complexity.
How to abstract: - By using Access Specifiers

.Net has five access Specifiers

Public -- Accessible outside the class through object reference.

Private -- Accessible inside the class only through member functions.

Protected -- Just like private but Accessible in derived classes also through member 
functions.

Internal -- Visible inside the assembly. Accessible through objects.

Protected Internal -- Visible inside the assembly through objects and in derived classes outside the assembly through member functions.

Let’s try to understand by a practical example:-


public class Class1
    {
        int  i;                                         //No Access specifier means private
        public  int j;                                        // Public
        protected int k;                             //Protected data
        internal int m;                        // Internal means visible inside assembly
        protected internal int n;                   //inside assembly as well as to derived classes outside assembly
        static int x;                                 // This is also private
        public static int y;                       //Static means shared across objects
        [DllImport("MyDll.dll")]
        public static extern int MyFoo();       //extern means declared in this assembly defined in some other assembly
        public void myFoo2()
        {
            //Within a class if you create an object of same class then you can access all data members through object reference even private data too
            Class1 obj = new Class1();
            obj.i =10;   //Error can’t access private data through object.But here it is accessible.:)
            obj.j =10;
            obj.k=10;
            obj.m=10;
            obj.n=10;
       //     obj.s =10;  //Errror Static data can be accessed by class names only
            Class1.x = 10;
         //   obj.y = 10; //Errror Static data can be accessed by class names only
            Class1.y = 10;
        }
    }

Now lets try to copy the same code inside Main method and try to compile
[STAThread]
        static void Main()
        {
           //Access specifiers comes into picture only when you create object of class outside the class
            Class1 obj = new Class1();
       //     obj.i =10; //Error can’t access private data through object.
            obj.j =10;
      //      obj.k=10;     //Error can’t access protected data through object.
            obj.m=10;
            obj.n=10;
       //     obj.s =10;  //Errror Static data can be accessed by class names only
            Class1.x = 10;  //Error can’t access private data outside class
         //   obj.y = 10; //Errror Static data can be accessed by class names only
            Class1.y = 10;
        }
What if Main is inside another assembly
[STAThread]
        static void Main()
        {
           //Access specifiers comes into picture only when you create object of class outside the class
            Class1 obj = new Class1();
       //     obj.i =10; //Error can’t access private data through object.
            obj.j =10;
      //      obj.k=10;     //Error can’t access protected data through object.
     //     obj.m=10; // Error can’t access internal data outside assembly
    //      obj.n=10; // Error can’t access internal data outside assembly

       //     obj.s =10;  //Errror Static data can be accessed by class names only
            Class1.x = 10;  //Error can’t access private data outside class
         //   obj.y = 10; //Errror Static data can be accessed by class names only
            Class1.y = 10;
        }
In object-oriented software, complexity is managed by using abstraction.
Abstraction is a process that involves identifying the critical behavior of an object and eliminating irrelevant and complex details.

Inheritance:

Inheritance is a process of deriving the new class from already existing class
C# is a complete object oriented programming language. Inheritance is one of the primary concepts of object-oriented programming. It allows you to reuse existing code. Through effective use of inheritance, you can save lot of time in your programming and also reduce errors, which in turn will increase the quality of work and productivity. A simple example to understand inheritance in C#.


Using System;
Public class BaseClass
{
    Public BaseClass ()
    {
        Console.WriteLine ("Base Class Constructor executed");
    }
                                 
    Public void Write ()
    {
        Console.WriteLine ("Write method in Base Class executed");
    }
}
                                 
Public class ChildClass: BaseClass
{
                                 
    Public ChildClass ()
    {
        Console.WriteLine("Child Class Constructor executed");
    }
   
    Public static void Main ()
    {
        ChildClass CC = new ChildClass ();
        CC.Write ();
    }
}

In the Main () method in ChildClass we create an instance of childclass. Then we call the write () method. If you observe the ChildClass does not have a write() method in it. This write () method has been inherited from the parent BaseClass.

The output of the above program is

Output:
  Base Class Constructor executed
  Child Class Constructor executed
  Write method in Base Class executed

this output proves that when we create an instance of a child class, the base class constructor will automatically be called before the child class constructor. So in general Base classes are automatically instantiated before derived classes.

In C# the syntax for specifying BaseClass and ChildClass relationship is shown below. The base class is specified by adding a colon, ":", after the derived class identifier and then specifying the base class name.

Syntax:  class ChildClassName: BaseClass
              {
                   //Body
              }

C# supports single class inheritance only. What this means is, your class can inherit from only one base class at a time. In the code snippet below, class C is trying to inherit from Class A and B at the same time. This is not allowed in C#. This will lead to a compile time 
error: Class 'C' cannot have multiple base classes: 'A' and 'B'.

public class A
{
}
public class B
{
}
public class C : A, B
{
}

In C# Multi-Level inheritance is possible. Code snippet below demonstrates mlti-level inheritance. Class B is derived from Class A. Class C is derived from Class B. So class C, will have access to all members present in both Class A and Class B. As a result of multi-level inheritance Class has access to A_Method(),B_Method() and C_Method().

Note: Classes can inherit from multiple interfaces at the same time. Interview Question: How can you implement multiple inheritance in C#? Ans : Using Interfaces. We will talk about interfaces in our later article.

Using System;
Public class A
{
    Public void A_Method ()
    {
        Console.WriteLine ("Class A Method Called");
    }
}
Public class B: A
{
    Public void B_Method ()
    {
        Console.WriteLine ("Class A Method Called");
    }
}
Public class C: B
{
    Public void C_Method ()
    {
        Console.WriteLine ("Class A Method Called");
    }
                   
    Public static void Main ()
    {
        C C1 = new C ();
        C1.A_Method ();
        C1.B_Method ();
        C1.C_Method ();
    }
}
When you derive a class from a base class, the derived class will inherit all members of the base class except constructors. In the code snippet below class B will inherit both M1 and M2 from Class A, but you cannot access M2 because of the private access modifier. Class members declared with a private access modifier can be accessed only with in the class. We will talk about access modifiers in our later article.

Common Interview Question: Are private class members inherited to the derived class?

Ans: Yes, the private members are also inherited in the derived class but we will not be able to access them. Trying to access a private base class member in the derived class will report a compile time error.

Using System;
Public class A
{
Public void M1 ()
{
}
Private void M2 ()
{
}
}

Public class B: A
{
Public static void Main ()
{
B B1 = new B ();
B1.M1 ();
//Error, Cannot access private member M2
//B1.M2 ();
}
}
Method Hiding and Inheritance We will look at an example of how to hide a method in C#. The Parent class has a write () method which is available to the child class. In the child class I have created a new write () method. So, now if I create an instance of child class and call the write () method, the child class write () method will be called. The child class is hiding the base class write () method. This is called method hiding.

If we want to call the parent class write () method, we would have to type cast the child object to Parent type and then call the write () method as shown in the code snippet below.


Using System;
Public class Parent
{
    Public void Write ()
    {
        Console.WriteLine ("Parent Class write method");
    }
}
 
Public class Child: Parent
{
    Public new void Write ()
    {
        Console.WriteLine ("Child Class write method");
    }
   
    Public static void Main ()
    {
        Child C1 = new Child ();
        C1.Write ();
        //Type caste C1 to be of type Parent and call Write () method
        ((Parent) C1).Write ();
    }
}

Polymorphism:

When a message can be processed in different ways is called polymorphism. Polymorphism means many forms.
 
Polymorphism is one of the fundamental concepts of OOP.
 
Polymorphism provides following features: 

  • It allows you to invoke methods of derived class through base class reference during runtime.
  • It has the ability for classes to provide different implementations of methods that are called through the same name. 
Polymorphism is of two types:
 
  1. Compile time polymorphism/Overloading
  2. Runtime polymorphism/Overriding
Compile Time Polymorphism
 
Compile time polymorphism is method and operators overloading. It is also called early binding.
 
In method overloading method performs the different task at the different input parameters.
 
Runtime Time Polymorphism
 
Runtime time polymorphism is done using inheritance and virtual functions. Method overriding is called runtime polymorphism. It is also called late binding.
 
When overriding a method, you change the behavior of the method for the derived class.  Overloading a method simply involves having another method with the same prototype.
 
Caution: Don't confused method overloading with method overriding, they are different, unrelated concepts. But they sound similar.
 
Method overloading has nothing to do with inheritance or virtual methods.
 
Following are examples of methods having different overloads:
 
void area(int side);
void area(int l, int b);
void area(float radius);
 
Practical example of Method Overloading (Compile Time Polymorphism)
 
using System;
 
namespace method_overloading
{
    class Program
    {
        public class Print
        {
           
            public void display(string name)
            {
                Console.WriteLine ("Your name is : " + name);
            }
 
            public void display(int age, float marks)
            {
                Console.WriteLine ("Your age is : " + age);
                Console.WriteLine ("Your marks are :" + marks);
            }
        }
       
        static void Main(string[] args)
        {
 
            Print obj = new Print ();
            obj.display ("George");
            obj.display (34, 76.50f);
            Console.ReadLine ();
        }
    }

Note: In the code if you observe display method is called two times. Display method will work according to the number of parameters and type of parameters.

When and why to use method overloading
 
Use method overloading in situation where you want a class to be able to do something, but there is more than one possibility for what information is supplied to the method that carries out the task.
 
You should consider overloading a method when you for some reason need a couple of methods that take different parameters, but conceptually do the same thing.
 
Method overloading showing many forms.
 
using System;
 
namespace method_overloading_polymorphism
{
    Class Program
    {
        Public class Shape
        {
            Public void Area (float r)
            {
                float a = (float)3.14 * r;
                // here we have used function overload with 1 parameter.
                Console.WriteLine ("Area of a circle: {0}",a);
            }
 
            Public void Area(float l, float b)
            {
                float x = (float)l* b;
                // here we have used function overload with 2 parameters.
                Console.WriteLine ("Area of a rectangle: {0}",x);
 
            }
 
            public void Area(float a, float b, float c)
            {
                float s = (float)(a*b*c)/2;
                // here we have used function overload with 3 parameters.
                Console.WriteLine ("Area of a circle: {0}", s);
            }
        }
 
        Static void Main (string[] args)
        {
            Shape ob = new Shape ();
            ob.Area(2.0f);
            ob.Area(20.0f,30.0f);
            ob.Area(2.0f,3.0f,4.0f);
            Console.ReadLine ();
        }
    }
 
Things to keep in mind while method overloading
 
If you use overload for method, there are couple of restrictions that the compiler imposes.
 
The rule is that overloads must be different in their signature, which means the name and the number and type of parameters.
 
There is no limit to how many overload of a method you can have. You simply declare them in a class, just as if they were different methods that happened to have the same name.

Method Overriding:

Whereas Overriding means changing the functionality of a method without changing the signature. We can override a function in base class by creating a similar function in derived class. This is done by using virtual/override keywords.

Base class method has to be marked with virtual keyword and we can override it in derived class using override keyword.

Derived class method will completely overrides base class method i.e. when we refer base class object created by casting derived class object a method in derived class will be called.

Example: 

// Base class
public class BaseClass
{
public virtual void Method1()
{
Console.Write("Base Class Method");
}
}
// Derived class
public class DerivedClass : BaseClass
{
public override void Method1()
{
Console.Write("Derived Class Method");
}
}
// Using base and derived class
public class Sample
{
public void TestMethod()
{
// calling the overriden method
DerivedClass objDC = new DerivedClass();
objDC.Method1();
 // calling the baesd class method
BaseClass objBC = (BaseClass)objDC;
objDC.Method1();
}
}

Output
---------------------

Derived Class Method

Derived Class Method

Constructors and Destructors:

Classes have complicated internal structures, including data and functions, object initialization and cleanup for classes is much more complicated than it is for simple data structures. Constructors and destructors are special member functions of classes that are used to construct and destroy class objects. Construction may involve memory allocation and initialization for objects. Destruction may involve cleanup and deallocation of memory for objects.
  • Constructors and destructors do not have return types nor can they return values.
  • References and pointers cannot be used on constructors and destructors because their addresses cannot be taken.
  • Constructors cannot be declared with the keyword virtual.
  • Constructors and destructors cannot be declared const, or volatile.
  • Unions cannot contain class objects that have constructors or destructors.
Constructors and destructors obey the same access rules as member functions. For example, if you declare a constructor with protected access, only derived classes and friends can use it to create class objects.
The compiler automatically calls constructors when defining class objects and calls destructors when class objects go out of scope. A constructor does not allocate memory for the class object it’s this pointer refers to, but may allocate storage for more objects than its class object refers to. If memory allocation is required for objects, constructors can explicitly call the new operator. During cleanup, a destructor may release objects allocated by the corresponding constructor. To release objects, use the delete operator.

Example of Constructor

class C
{
       private int x;    
       private int y;
       public C (int i, int j)
       {
                 x = i;
                 y = j;
       }
       public void display ()     
       {
               Console.WriteLine(x + "i+" + y);
       }
}

Example of Destructor

class D
{
        public D ()
        {
            // constructor
        }         
        ~D ()
        {
           // Destructor
        }
}

If you enjoyed this post, please support the blog below. It's FREE!

Get the latest Asp.net, C#.net, VB.NET, jQuery, Plugins & Code Snippets for FREE by subscribing to our Facebook, Twitter, RSS feed, or by email.

subscribe by rss Subscribe by RSS subscribe by email Subscribe by Email

462 comments :

«Oldest   ‹Older   1 – 200 of 462   Newer›   Newest»
Anonymous said...

nice article

Anonymous said...

Nice Article good work

siva said...

its very nice plz every one go throw it

siva

just said...

its very useful

Anonymous said...

very thank you.Now I come to know for what they are really meant for.
I'm having a doubt on static keyword.what is the use of static and where it is really used.

Anonymous said...

Thanku

Anonymous said...

Thank you very much....It's a very nice article and useful..

kancheti venkat said...

I have Clarified my doubts in oops .ThanQ . Keep Rocking.

Anonymous said...

nice n valuable info...

sql said...

its very useful for all beginners ...really nice but i want some change ur website i.e i want to click sql tab then it will open another extra tab so dat much of burden to server..

Prasanthi said...

Nice article on OOPS Concept.Good work

Anonymous said...

its very useful for all beginners ...really nice

Anonymous said...

Nice Article Good job Thanks

Gopi said...

Hi Suresh

Good Job

Tamil said...

Very nice.....

Anonymous said...

Great work. Keep it up!

Anonymous said...

hi suresh good job.

komal said...

Very Very usefull suresh keep it up..and i daily read your blog and learn new thing every day..

harani said...

article chala bagundi

Anonymous said...

good

Anonymous said...

not clear with constructor can u give more details

Anonymous said...

good

AMI said...

Very nice...and so simple

Anonymous said...

Simple & Best

Anonymous said...

thank u

Anonymous said...

Good one...saved this link to share with my friends...Excellent work..:)

Anonymous said...

Superb...........

kotte said...

great boss good article

Manoj said...

Very good article

Anonymous said...

This is very useful to will growing software in engineers in all program languages

by-indian

Basu said...

awesome article .....its very valuable thing for freshers.....

Anonymous said...

Bahut badhiya cheeze hai.........!Mast banaya!

Vinay Kumar said...

Great JOB Mr. Suresh....

vijeesh said...

very nice.....

vijeesh said...

very nice.....

Anonymous said...

Very Nice! so Simple and easily Understand,
Thank You!

SHAN said...

Good Work,
What are the Default Access Modifiers in C#?

if it is Internal please explain

Anonymous said...

Nice Work Keep it up

sangmeshwar Mandade said...

Thank You Sir

Anonymous said...

In the inheritance example base class constuctor execured first,then derived class constructor and then write method but i this article at one point it was determined that derived class inherits all base class members except constructors....i am confused with it pls explain.......

Rajesh said...

nice job suresh

Naveen said...

its really good website for learners...

Naveen said...

Best website to improve our skills...

Vinod said...

Nice to see these type of website...Really wonderful

suresh mallina said...

its really good website for learners...

Basavaraja K said...

Good Explanation with good Examples.

Please explain about Threading

Regards,
Basavaraja K

Anonymous said...

so nice very very very well

Hari said...

CLEARED EACH CONCEPT IN A VERY SIMPLE MANNER... VERY FEW HAS SUCH SKILLS...
IT'S GOOD TO FIND SOME ONE WITH SUCH SKILLS...
THANK YOU...
GOOD LUCK AND HAVE GOOD DAY...

Anonymous said...

Good Information ... awesome!!!!

It will be very great if provide the same with vb.net code aswell....

REGARDS,VAMSHIKRISHNA

Anonymous said...

Hi.My name is sai krishna.

You are really great. Your explanation is simply super. Its very much useful for the interview point of view. Thank you so much. I have learnt so much from this post.

God bless you.

sankar said...

This is very good Articles for beginers,and required more example to justify your view.

Anonymous said...

It's really a good article.......!!!!!

Anonymous said...

Really easy to understand. Thanks suresh

Anonymous said...

Nice Easy To Understand. Thanks

Sanjay said...

Very Nice .......Good job

Anonymous said...

great man...
it's really very good...

Deewar said...

Simple but clear thinking..nice

Anonymous said...

thank you for your effort

Munna said...

Please Post A program for Captcha..

Anonymous said...

Very nice Article. It clear all points. very nice

Anonymous said...

Nice Article but Method Overriding which is the most important concept is missing.

Anonymous said...

It's a very nice article and useful.

rohansp said...

I think the concept of Abstraction is slightly different.The definition that you have given is for Encapsulation and not Abstraction.

Abstraction is a mechanism that denotes the essential characteristics of an object which distinguish it from all other kinds of objects.

The process of hiding the details and presenting the interface to the user is called as Encapsulation.

Please clarify.

v.manikandaboopathi said...

very nice to ease of understanding information

Anonymous said...

this website is very helpful for improve ur skills

justin said...

very nice your article suresh

Thanks
Justin

Murugavel Sadagopan said...

excellent article suresh

youtube html5 player said...

Thanks for sharing your info. I really appreciate your efforts and I will be waiting for your further write ups thanks once again.

Anonymous said...

good work sir..

real B O W for u...

Anonymous said...

nice dear suresh..

sandy said...

very nice article

Ambily Ravi said...

very nice and easy to understanding thankz

Anonymous said...

best article

Anonymous said...

very useful and helps to understand the concepts easily....thanks suresh

sanjeev kumar said...

Very Nice

Anonymous said...

VERY NICE ARTICLE.....

Anonymous said...

very useful link

LP said...

Excellent!

Anonymous said...

Excellent work. Keep it up.

shankar

Anonymous said...

Excellent post !!!

ammar said...

Its Awesome...

Good Work.

Anonymous said...

It is very useful.......!!

Thank you,

Anonymous said...

u done a great job sir i dont know anything about oops concept now i am very clear about oops concept.......thanqqq very much...sir!!

ashref said...

very very very good article

ankur said...

Best..........

shruti said...

really nice.. looking forward to more such articles from you

Anonymous said...

good and easy article...

Anonymous said...

wow..great job..

all india radio said...

wonderful ..tnks ...

Subha said...

Really nice post and a great blog to follow.... keep it up man...

Murali said...

Good Work boss...

Nilam Tetgure said...

Nilam Tetgure

great work keep it up.............

Anonymous said...

very niceeeeeeee

Anonymous said...

Very nice

Ankit Patel said...

Nice article really helpful for me ...

Anonymous said...

great, thnxs you

Anonymous said...

I wonder u........

Anonymous said...

very good suresh good article

Anonymous said...

please provide some articles in oops.

Anonymous said...

thanks friend..........for this information

Anonymous said...

Thanks sir,
I am sourav really this docu is very helpful for every student or me.
Because various topic are collect in a single place.I things this document is sufficient to pass any 2 yrs expe in dotnet tech.
thanks

Anonymous said...

Thanks for refresh me.

Anonymous said...

This is speechless for me

Anonymous said...

good suresh keep it up.............

Anonymous said...

This is very useful for me and easily understandable for us.so read every one.
Thanks suresh sir,

Prasad Mari said...

Excellent Article

Anonymous said...

Good Article!!!! :)

Praveen Kumar Srivastava said...

I am so happy and i gain good knowledge by your example.
thank you so much friend

Anoop said...

Excellent work.

Salik Ram Maurya said...

Very helpful article

Anonymous said...

Thank You Suresh... Its Very helpfull..

Anonymous said...

nice

Narendran said...

great work

v.manikandaboopathi said...

realy very nice artical

v.manikandaboopathi said...

sent me asp.net Question

Vikas Sharma said...

Thanks a lot for providing this type of notes Through which my all the queries are sought out . thanks again

Asif said...

Thanks for such a simple article on OOPS. Great work keep it up.

linoy said...

Linoy said,

Good article ,,,,

Revathy said...

Thank U so much suresh....i felt u explained clearly but i want to know how to create dll and how can use tat in coding.so could u plz give some examples???

Gobi Selvaraj said...

nice to read...keep it up. Gud work. God bless you

Anonymous said...

nice article

viresh rajput said...

Very nice post Suresh

Arun Kumar Yadav said...

it's awesome sir..............keep update.......

Anonymous said...

encapsulation definations is given for abstraction.

Vishal Srivastava said...

Thanks Suresh..its Help me a lot..

Anil said...

good coverage of basic concepts..

Anonymous said...

nice by R.Mugundhan

Anonymous said...

Nice topic

kalai arasan said...

i need your suggestion for me regarding sharing my web application to print in ubuntu platform without deploy any program in ubuntu. did you have any idea inform me on kalaiarasan2020@gmail.com.please,i am waiting for your valuable reply sir...

Balaji Thirunavukarasu said...

i want mysql stored procedure using login page and register page . i have created login page and register page using mysql stored procedure in asp.net.in this @ parameter is used to insert in the text value stored null value in mysql database .i dont know how to @parameter using in asp.net at mysql . i want mysql support Query stored procedured query. Please help me

Anonymous said...

Nice article with easily understandable examples

Anonymous said...

Very nice post

Anonymous said...

great post

Arun said...

Great Post

suman said...

very help full post ..Nice gr8 work

sonalis shinde said...
This comment has been removed by the author.
Anonymous said...

very nice but concept of constructor little bit confusing because as you write that constructor cannot define as static but constructor can define as static.

Anonymous said...

thank you.. To give clear information about oops..

Anonymous said...

ThankYou great post this article helped me lot

somesh said...

Hi dude
Nice blog.

Abhimanyu said...

THANKS A LOT FOR HELP ME...!

To give clear information about oops.

saurabh khare said...

oops concept its very nice

Anonymous said...

Thanks a lot man..One word for u..U ROCK..

Anonymous said...

good n meaningful

habeeb said...

good nice......
by
habeeb

Anonymous said...

FYI:"Constructors and destructors cannot be declared static, const, or volatile"
U are wrong suresh,constructors can be static :)

Dinesh said...

Just want to share my answer for comment 5: Static,
Static refers to the nature of the member as independent of object. ex: Static members can be called without creating object.

sivarajan said...

nice good article

mayank said...

nice article.....

Anonymous said...

very gud :) keep it

nitesh sharma said...

Than sir
it is very gud.....

jayakumar chinta said...

very nice....................

Anonymous said...

Hey... It's really help me to understand the concepts... Thanks...

Anonymous said...

very informative.

Anonymous said...

Senthil:Nice article

h said...

js superb..........

Anonymous said...

Good explanation for interviews..

Anonymous said...

Really Nice...

Harsha said...

thank you...

santosh kushwaha said...

good for beginner and also exp guys.

Unknown said...

Thanks so much... great help...

Anonymous said...

very useful oops concepts..thank u...

sanjay bathre said...

thank you ..... great article

Anonymous said...

Gud Job..H

NANDISH said...

VERY GUD..

Pradeep said...

It is very gud article..it cleared most of doubts thet were in my mind...thanku

Anonymous said...

nice

Anonymous said...

Nice one...very helpful

Dhananjay Gupta said...

very good example of oops

Anonymous said...

Good commant

Anonymous said...

its very useful notes for begginer thanks for that notes i understand all the conceot

Anonymous said...

Nice and anyone can understand easily....

Anonymous said...

Thank u suresh

Virendra Puskar said...

gud

Anonymous said...

great post!

Nitish Kumar said...

Sir, Thank you very much. I had very confusion about opp concept you made it clear to me. Thanks...

Anonymous said...

Nice Work

mohanbabu mohan said...

blogs are very nice.........thank u suresh

Anonymous said...

Nice Artical for beginners... Thank u Suresh :)

Anonymous said...

Nice Artical for beginners

Anonymous said...

I am sourav really this docu is very helpful for every student or me.
Because various topic are collect in a single place.I things this document is sufficient to pass any 2 yrs expe in dotnet tech.

Anonymous said...

Nice Artical for beginners

MallaReddy said...

Really very nice for beginners.

Anonymous said...

Very Nice...! Any beginner can understand easly.
Thanks....!

Anonymous said...

very good article for learners....

Anonymous said...

Very nice. Thank you.

Anonymous said...

why we can't use multiple inheritence in C#

Anonymous said...

excellent...thanks!

Anonymous said...

------

Anonymous said...

Excellent work yaar!!!

Nageswar said...

nice

Anonymous said...

nice conpects...

Anonymous said...

no word to describe.....

Anonymous said...

very good article

Anonymous said...

woww very good article...

Anonymous said...

You are the Man !!!!

Karthikeyan S said...

It s very useful and easy to understand..Thank you Suresh..:)

Anonymous said...

nice dude

Anonymous said...

thanx for article it useful to understand the concept easily

NITIN DONGRE said...

Good Work.
Keep it on..............

«Oldest ‹Older   1 – 200 of 462   Newer› Newest»

Give your Valuable Comments

Other Related Posts

© 2010-2012 Aspdotnet-Suresh.com. All Rights Reserved.
The content is copyrighted to Suresh Dasari and may not be reproduced on other websites without permission from the owner.