Files
freeCodeCamp/guide/english/csharp/class/index.md
Randell Dawson 0a1eeea424 fix(guide) Replace invalid prism code block names (#35961)
* fix: replace sh with shell

fix replace terminal with shell

fix replace node with js

fix replace output with shell

fix replace cs with csharp

fix replace c++ with cpp

fix replace c# with csharp

fix replace javasctipt with js

fix replace syntax  with js

fix replace unix with shell

fix replace linux with shell

fix replace java 8 with java

fix replace swift4 with swift

fix replace react.js with jsx

fix replace javascriot with js

fix replace javacsript with js

fix replace c++ -  with cpp

fix: corrected various typos

fix: replace Algorithm with nothing

fix: replace xaml with xml

fix: replace solidity with nothing

fix: replace c++ with cpp

fix: replace txt with shell

fix: replace code with json and css

fix: replace console with shell
2019-05-15 19:08:19 +02:00

124 lines
3.4 KiB
Markdown

---
title: Class
---
## Class
A class in C# is defined as a reference type. In order to instantiate a variable of a reference type you must specify the `new` keyword, otherwise the variable will have the default value of `null`. See below for an example.
```csharp
// The value of variableOne is null at this point.
NewClass variableOne;
// Now the value of variableOne will be an instance of the class NewClass
variableOne = new NewClass();
```
At runtime, when the class is instantiated, enough memory is allocated onto the heap for that specific instance of the class held in the variable.
#### Creating Classes
To create a class in C# we need to use the `class` keyword followed by a unique identifier.
Like other languages, C# creates a default constructor that accepts no parameters. We can also specify our own constructor if we need to take in special parameters or have custom initialization steps in our constructor.
```csharp
public class NewClass
{
NewClass(string name)
{
// Initialization steps...
}
}
```
A class is a prototype or blueprint from which objects are created. In C#, the class is defined by using the keyword `class`. A class is used to combine together some methods, properties, fields, events, and delegates into a single unit. A class may contain nested classes too.
#### Example: Consider the case of Employee Class below:
```csharp
using System;
namespace CPrograms
{
class Employee
{
private string name;
private int employeeId;
public Employee(string name, int employeeId)
{
this.name = name;
this.employeeId = employeeId;
}
public void PrintEmployee()
{
Console.WriteLine("Employee Name: {0}, Employee ID: {1}", this.name, this.employeeId);
}
}
class Program
{
static void Main(string[] args)
{
Employee employeeObject = new Employee("John Doe", 420156);
employeeObject.PrintEmployee();
}
}
}
```
## Output:
```shell
> Employee Name: John Doe, Employee ID: 420156
```
A class can inherit from one base class only. However, it can implement from more than one interface.
#### Example of inheriting from one class and 2 interfaces
```csharp
// base class: Human
public class Human {
public int Age;
public Human (int age) {
Age = age;
}
}
// first interface: Student
public interface Student {
int StudentNumber { get; set; }
}
// second interface: Employee
public interface Employee {
int EmployeeNumber { get; set; }
string JobTitle { get; set; }
}
// Example of class extending a class and using 2 interfaces
public class Person : Human, Student, Employee {
// new field for Person
public string Name;
// needed to satisfy Student interface
public int StudentNumber { get; set; }
// needed to satisfy Employee interface
public int EmployeeNumber { get; set; }
public string JobTitle { get; set; }
// set the instance variables and pass the age to the base class
public Person(string name, int age, int studentNum, int employeeNum, string jobTitle) : base(age)
{
Name = name;
StudentNumber = studentNum;
EmployeeNumber = employeeNum;
JobTitle = jobTitle;
}
}
```
## More Information
Read more about classes [here](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/class)