Hey! If you love C# and building C# apps as much as I do, let's connect on Twitter or LinkedIn. I talk about this stuff all the time!

Classes and Objects in C#

Master the fundamentals of C# programming with our comprehensive guide to classes and objects. Learn how to define and use classes, constructors, properties, and methods to build robust and reusable code.


Updated October 18, 2023

In C#, classes and objects are the building blocks of programming. Understanding how to define and use classes, as well as how to create and manipulate objects, is essential for any aspiring C# developer. In this article, we’ll take a closer look at class and object basics in C#.

What are Classes?

A class is a blueprint or template for creating objects. It defines the properties and methods that an object can have, as well as how those properties and methods behave. In other words, a class defines the structure and behavior of an object.

Here’s an example of a simple class in C#:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

In this example, we’ve defined a class called Person that has two properties: Name and Age. These properties are used to store values for the corresponding attributes.

What are Objects?

An object is an instance of a class. It represents a specific entity or concept, such as a person, car, or building. Objects have their own set of properties and methods that can be accessed and manipulated.

Here’s an example of creating an object from the Person class we defined earlier:

Person person = new Person { Name = "John", Age = 30 };

In this example, we’ve created a new object called person using the Person class. We’ve set the values of the Name and Age properties to “John” and 30, respectively.

Properties vs. Fields

In C#, classes can have two types of members: properties and fields. Properties are used to encapsulate data and behavior, while fields are used to store data only.

Here’s an example of a class with properties and fields:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    private string _address; // field
}

In this example, we’ve defined three members for the Person class: Name, Age, and _address. The Name and Age properties are used to encapsulate data and behavior, while the _address field is used to store data only.

Constructors

A constructor is a special method that is called when an object is created. It is used to initialize the object’s properties and prepare it for use.

Here’s an example of a class with a constructor:

public class Person
{
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

In this example, we’ve defined a constructor for the Person class that takes two parameters: name and age. We use these parameters to set the values of the Name and Age properties.

Methods

A method is a block of code that performs a specific task. In C#, methods are used to encapsulate behavior and provide functionality to objects.

Here’s an example of a class with a method:

public class Person
{
    public void SayHello()
    {
        Console.WriteLine("Hello!");
    }
}

In this example, we’ve defined a method called SayHello for the Person class. This method writes “Hello!” to the console.

Inheritance

Inheritance is a concept in which one class inherits the properties and methods of another class. It allows developers to create a new class that builds upon an existing class, while also adding new functionality.

Here’s an example of inheritance in C#:

public class Person : IClearable
{
    public void Clear()
    {
        Console.WriteLine("Cleared!");
    }
}

In this example, we’ve defined a new class called Person that inherits from the IClearable interface. This allows us to use the Clear method defined in the interface on any object that implements IClearable.

Polymorphism

Polymorphism is the ability of an object to take on many forms. It allows developers to create objects that can be treated as if they were of a different type.

Here’s an example of polymorphism in C#:

public interface IClearable
{
    void Clear();
}

public class Person : IClearable
{
    public void Clear()
    {
        Console.WriteLine("Cleared!");
    }
}

public class Animal : IClearable
{
    public void Clear()
    {
        Console.WriteLine("Cleaned up!");
    }
}

In this example, we’ve defined an interface called IClearable that has a single method: Clear. We’ve also defined two classes, Person and Animal, that implement the IClearable interface. This allows us to treat objects of type Person and Animal as if they were of type IClearable.

Final Words

In this article, we’ve covered some of the basics of classes and objects in C#. We’ve looked at how to define classes, create objects, use properties and fields, constructors, methods, inheritance, and polymorphism. These concepts are essential for any aspiring C# developer to understand, as they form the foundation upon which all C# programming is built.

We hope this article has been helpful in introducing you to class and object basics in C#. Happy coding!