Structure's
- This concept is not new in C#; it is taken from C language.
- In C language‘s structures, you can write only some member variables, called as data members / fields. But in C#‘s structures, you can write fields along with some methods also.
- So, In C#, structures are almost all similar to the classes, but having some differences with the classes.
Difference Between Classes and Structures
Classes | Structures |
---|---|
Class is a references type data type | Struct is a value type data type |
When we create an object for class it will be allocated memory in Heap Memory. | When we create an object for the structure it will be allocated memory in Stack Memory. |
To define a class, we need to use the class keyword. | To define a structure, we need to use the structure keyword. |
class will support inheritance | structure will not support inheritance |
Instance field initialisation is allowed in class. | Instance field initialisation is not allowed in the structure. |
A class can have an explicit default constructor | A structure can't have an explicit default constructor |
We can't create an object for a class without using a new keyword. | We can create an object for a structure without using a new keyword if it does not have an instance variable. |
We can have static, abstract and sealed classes | We can't have static, abstract and sealed structures. |
We can implement overloading and overriding within the class. | We can implement overloading within a structure, but we can't implement overriding within a structure. |
Syntax :
- Structure syntax
- Create instance for structure
struct structurename
{
//fields
//methods
}
structurename instancename = new structurename();
C# Structures Coding:
we just looking into the overview of the structure skeleton syntax
namespace StructuresDemo
{
struct Employee
{
//fields declare here
//methods
public void ReadData() { //code }
public void Calculate() { //code }
public void DisplayData() { //code }
}
}
I'm defining a few fields for employee structure as shown in the below code snippet to do some operations in the methods that we declared in the employee structure class.
//fields
private int EmployeeID;
private string EmployeeName;
private double Salary;
private double Tax;
private double NetSalary;
The ReadData() method is used to accept values from the command prompt and store them in corresponding fields and these fields we use for further operations.
//methods
public void ReadData()
{
Console.Write("Enter Employee ID: ");
EmployeeID = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter Employee Name: ");
EmployeeName = Console.ReadLine();
Console.Write("Enter Salary: ");
Salary = Convert.ToDouble(Console.ReadLine());
}
The Calculate() method is used to calculate tax based on a salary for which we passed the salary amount in the ReadData() method and also calculate net salary from base salary and tax.
public void Calculate()
{
Tax = Salary * 10 / 100;
NetSalary = Salary - Tax;
}
The DisplayData() method is used to retrieve the data from the fields and display it to the user.
public void DisplayData()
{
Console.WriteLine("\n\nEmployee ID: " + EmployeeID);
Console.WriteLine("Employee Name: " + EmployeeName);
Console.WriteLine("Salary: " + Salary);
Console.WriteLine("Tax: " + Tax);
Console.WriteLine("Net Salary: " + NetSalary);
}
In static void main method we create an object for the Employee structure and call the method through structure instance.
namespace StructuresDemo
{
class Program
{
static void Main(string[] args)
{
//create structure instance
Employee e = new Employee();
//call the methods
e.ReadData();
e.Calculate();
e.DisplayData();
Console.ReadLine();
}
}
}
You can check out the same code from the article in the Fiddle provided below. Feel free to explore and experiment with it directly in the Fiddle interface.
0 Comments