Open In App

C# | Structures | Set – 1

Structure is a value type and a collection of variables of different data types under a single unit. It is almost similar to a class because both are user-defined data types and both hold a bunch of different data types. C# provide the ability to use pre-defined data types. However, sometimes the user might be in need to define its own data types which are also known as User-Defined Data Types. Although it comes under the value type, the user can modify it according to requirements and that’s why it is also termed as the user-defined data type.
Defining Structure: In C#, structure is defined using struct keyword. Using struct keyword one can define the structure consisting of different data types in it. A structure can also contain constructors, constants, fields, methods, properties, indexers and events etc. 
 

Access_Modifier struct structure_name
{

   // Fields 
   // Parameterized constructor 
   // Constants 
   // Properties 
   // Indexers 
   // Events 
   // Methods etc.
   
}




// C# program to illustrate the
// Declaration of structure
using System;
namespace ConsoleApplication {
 
// Defining structure
public struct Person
{
    // Declaring different data types
    public string Name;
    public int Age;
    public int Weight;
 
}
 
class Geeks {
     
    // Main Method
    static void Main(string[] args)
    {
 
        // Declare P1 of type Person
        Person P1;
 
        // P1's data
        P1.Name = "Keshav Gupta";
        P1.Age = 21;
        P1.Weight = 80;
 
        // Displaying the values
        Console.WriteLine("Data Stored in P1 is " +
                           P1.Name + ", age is " +
                           P1.Age + " and weight is " +
                           P1.Weight);
 
    }
}
}

Output: 

Data Stored in P1 is Keshav Gupta, age is 21 and weight is 80

 

Copy Structure: In C#, user can copy one structure object into another one using ‘=’ (Assignment) operator.
 

Structure_object_destination = structure_object_source;




// C# program to illustrate copy the structure
using System;
namespace ConsoleApplication {
 
// Defining structure
public struct Person
{
    // Declaring different data types
    public string Name;
    public int Age;
    public int Weight;
 
}
 
class Geeks {
     
    // Main Method
    static void Main(string[] args)
    {
 
        // Declare P1 of type Person
        Person P1;
 
        // P1's data
        P1.Name = "Keshav Gupta";
        P1.Age = 21;
        P1.Weight = 80;
         
        // Declare P2 of type Person
        Person P2;
         
        // Copying the values of P1 into P2
         P2 = P1;
 
        // Displaying the values of P1
        Console.WriteLine("Values Stored in P1");
        Console.WriteLine("Name: " +P1.Name);
        Console.WriteLine("Age: " +P1.Age);
        Console.WriteLine("Weight: " +P1.Weight);
        Console.WriteLine("");
         
        // Displaying the values of P2
        Console.WriteLine("Values Stored in P2");
        Console.WriteLine("Name: " +P2.Name);
        Console.WriteLine("Age: " +P2.Age);
        Console.WriteLine("Weight: " +P2.Weight);
                            
    }
}
}

Output: 

Values Stored in P1
Name: Keshav Gupta
Age: 21
Weight: 80

Values Stored in P2
Name: Keshav Gupta
Age: 21
Weight: 80

 

Nesting of Structures: C# allows the declaration of one structure into another structure and this concept is termed as the nesting of the structure.
 




// C# program to illustrate Nesting of structures
using System;
namespace ConsoleApplication {
 
// first structure defined
// with public modifier
public struct Address
{
     
    // data member of Address structure
    public string City;
    public string State;
}
 
 
// Another structure
struct Person
{
     
    // data member of Person structure
    public string Name;
    public int Age;
     
    // Nesting of Address structure
    // by creating A1 of type Address
    public Address A1;
}
 
class Geeks {
     
    // Main method
    static void Main(string[] args)
    {
 
        // Declare p1 of type Person
        Person p1;
 
        // Assigning values to the variables
        p1.Name = "Raman";
        p1.Age = 12;
         
        // Assigning values to the nested
        // structure data members
        p1.A1.City = "ABC_City";
        p1.A1.State = "XYZ_State";
         
        Console.WriteLine("Values Stored in p1");
        Console.WriteLine("Name: " +p1.Name);
        Console.WriteLine("Age: " +p1.Age);
        Console.WriteLine("City: " +p1.A1.City);
        Console.WriteLine("State: " +p1.A1.State);
 
    }
}
}

Output: 
Values Stored in p1
Name: Raman
Age: 12
City: ABC_City
State: XYZ_State

 

Important Points about Structures: 
 

Difference Between Structures and Class : 

 

Category Structure Class
Data Type Value Type Reference type
Assignment Operation Copies the value Copies the reference
Parameterless Constructors Not Allowed Allowed
Inheritance Not supported Always supported

 


Article Tags :
C#