Last Updated : 11 Jul, 2025
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);
}
}
}
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);
}
}
}
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);
}
}
}
Values Stored in p1 Name: Raman Age: 12 City: ABC_City State: XYZ_State
Important Points about Structures:
Difference Between Structures and Class :
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4