Easy Tutorial
❮ Csharp Variables Csharp Reflection ❯

C# Struct

In C#, a struct is a value type data structure. It allows a single variable to store various data types of related data. The struct keyword is used to create a struct.

Structs are used to represent a record. Suppose you want to track the dynamics of books in a library. You might want to track the following properties for each book:

Defining a Struct

To define a struct, you must use the struct statement. The struct statement defines a new data type with multiple members for your program.

For example, you can declare a Book struct as follows:

struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};

The following program demonstrates the usage of structs:

Example

using System;
using System.Text;

struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};

public class testStructure
{
   public static void Main(string[] args)
   {
      Books Book1;        /* Declare Book1 of type Books */
      Books Book2;        /* Declare Book2 of type Books */

      /* Detailed description of book 1 */
      Book1.title = "C Programming";
      Book1.author = "Nuha Ali";
      Book1.subject = "C Programming Tutorial";
      Book1.book_id = 6495407;

      /* Detailed description of book 2 */
      Book2.title = "Telecom Billing";
      Book2.author = "Zara Ali";
      Book2.subject = "Telecom Billing Tutorial";
      Book2.book_id = 6495700;

      /* Print Book1 information */
      Console.WriteLine("Book 1 title : {0}", Book1.title);
      Console.WriteLine("Book 1 author : {0}", Book1.author);
      Console.WriteLine("Book 1 subject : {0}", Book1.subject);
      Console.WriteLine("Book 1 book_id : {0}", Book1.book_id);

      /* Print Book2 information */
      Console.WriteLine("Book 2 title : {0}", Book2.title);
      Console.WriteLine("Book 2 author : {0}", Book2.author);
      Console.WriteLine("Book 2 subject : {0}", Book2.subject);
      Console.WriteLine("Book 2 book_id : {0}", Book2.book_id);

      Console.ReadKey();
   }
}

When the above code is compiled and executed, it produces the following result:

Book 1 title : C Programming
Book 1 author : Nuha Ali
Book 1 subject : C Programming Tutorial
Book 1 book_id : 6495407
Book 2 title : Telecom Billing
Book 2 author : Zara Ali
Book 2 subject : Telecom Billing Tutorial
Book 2 book_id : 6495700

Characteristics of C# Structs

You have used a simple struct named Books. Structs in C# are different from traditional C or C++ structs. C# structs have the following characteristics:

Class vs Structure

Classes and structures have the following basic differences:

Based on the above discussion, let's rewrite the previous example:

Example

using System;
using System.Text;

struct Books
{
    private string title;
    private string author;
    private string subject;
    private int book_id;
    public void setValues(string t, string a, string s, int id)
    {
        title = t;
        author = a;
        subject = s;
        book_id = id;
    }
    public void display()
    {
        Console.WriteLine("Title : {0}", title);
        Console.WriteLine("Author : {0}", author);
        Console.WriteLine("Subject : {0}", subject);
        Console.WriteLine("Book_id :{0}", book_id);
    }
};

public class testStructure
{
    public static void Main(string[] args)
    {
        Books Book1 = new Books(); /* Declare Book1 of type Books */
        Books Book2 = new Books(); /* Declare Book2 of type Books */

        /* book 1 specification */
        Book1.setValues("C Programming",
        "Nuha Ali", "C Programming Tutorial", 6495407);

        /* book 2 specification */
        Book2.setValues("Telecom Billing",
        "Zara Ali", "Telecom Billing Tutorial", 6495700);

        /* Print Book1 info */
        Book1.display();

        /* Print Book2 info */
        Book2.display();

        Console.ReadKey();
    }
}

When the above code is compiled and executed, it produces the following result:

Title : C Programming
Author : Nuha Ali
Subject : C Programming Tutorial
Book_id : 6495407
Title : Telecom Billing
Author : Zara Ali
Subject : Telecom Billing Tutorial
Book_id : 6495700
❮ Csharp Variables Csharp Reflection ❯