C# Struct

Struct in C# is a value type and a collection of variables of different data types inside a single unit. It is similar to classes in C# because both are the blueprints to create an object of a class and both are user-defined types.

However, a struct is a value type whereas a class is a reference type. Also, the struct does not support inheritance but can implement an interface. A class can have a default constructor whereas a struct cannot have a default constructor.

Syntax of struct in C#

Defining and Initialization struct in C#: The keyword that is used to define the structure is struct. A structure can also contain constructors, constants, fields, methods, properties, indexers, etc.

Structures can be instantiated with or without new keyword in C#.

//Defining
struct struct_name 
{  
   // Fields 
   // Parameterized constructor 
   // Methods 
   // Properties 
   // Indexers  
    ... 
    ...  
};

//Initialization
struct_name obj = new struct_name();
 

Consider basic data of student: name, roll, score. And also let us initialized those values by creating an instance of the struct.
Student structure is declared in the following way:

//Struct Defining
public struct Student
{
   public string name;
   public int roll;
   public float score;
};

//Initialization
Student std = new Student();
std.name = "John Mac";
std.roll = 1101;
std.score = 80.5;

Let us go through an example to understand it better.


Example 1: C# program for structure

using System;

public struct Student
{
  public string name;
  public int roll;
  public float score;
};

public class StructureEg
{
  public static void Main(string[] args)
  {
    Student std = new Student();
    std.name = "John Mac";
    std.roll = 1101;
    std.score = 80.5 f;

    Console.WriteLine("Name: {0}", std.name);
    Console.WriteLine("Roll: {0}", std.roll);
    Console.WriteLine("score: {0}", std.score);
  }
}

Output:

Name: John Mac
Roll: 1101
score: 80.5


Example 2: C# program for structure using constructor and methods

It is another program where we will use a constructor and create a method for a structure.

using System;

public struct Student
{
  public string name;
  public int roll;
  public float score;

  //constructor
  public Student(string n, int r, float s)
  {
    name = n;
    roll = r;
    score = s;
  }

  //Method
  public void display()
  {
    Console.WriteLine("Name: {0}", name);
    Console.WriteLine("Roll: {0}", roll);
    Console.WriteLine("score: {0}", score);
  }
};

public class StructureEg
{
  public static void Main(string[] args)
  {
    Student std = new Student("John Mac", 1101, 80.5 f);
    std.display();
  }
}

Output: The result is the same as example 1 above.

Name: John Mac
Roll: 1101
score: 80.5