C# Struct and Enumeration

C# Struct and Enumeration


Struct


Structs are similar to classes except they are value types designed to implement lean and mean data types. Also, structs don't support inheritance, parameterless constructors, or destructors. Structs do support methods and properties, and they can implement interfaces, static and instance members, and static and instance constructors.

Because structs are value types, they’re allocated on the stack and are allocated and deallocated efficiently without requiring garbage collection. If the struct is too large, however, passing it as a value parameter can become inefficient compared to a class that simply passes the value of the reference. Therefore, developers should keep structs relatively small.
The following example shows a simple struct declaration.

using System;
struct Employee
{
          int intEmpID;
          public Employee(int value)
         {
                intEmpID= value;
         }
         public void Print()
         {
               Console.WriteLine("Employee is {0}", intEmpID);
          }

}

class TestEmployee
{
        public static void Main()
       {
             Employee objEmp= new Employee (1);
             objEmp.Print();
        }
}

Enumerations


Enumerations define a set of values for data. Enumerations are considered value types and, therefore, instances are allocated on the stack. The base type of an enumerator may be one of byte, sbyte, short, ushort, int, uint, long, or ulong. The default base type is int.

The following sample illustrates the declaration and use of enumerators:

using System;
class Enums
{
        enum Directions
       {
             North,
             South,
             East,
             West
       }

      public static void Main()
      {
           Directions dir= Directions.North;
           Console.WriteLine("Direction is {0}", dir);
      }

}

This sample produces the following results:

Direction is North

In addition, enumeration members can specify values explicitly in their declaration and multiple members may share the same value.

enum Directions

{
North=1,
South,
East,
West
Bangalore=South
}

When no value is explicitly assigned, the first enumeration member has a value of 0 and each of the other member’s value is the value of the previous member plus one. Enumerations are based on the System.Enum type.

No comments:

Post a Comment

Labels

.NET Framework Interview Questions (7) .NET Interview Questions (10) .NET Remoting Interview Questions (1) ADO.NET and BLOB Error (1) ADO.NET Interview Questions (4) Agile Articles (9) AJAX Articles (5) AJAX Interview Questions (11) Algorithms (2) Analytics Articles (2) Analytics Interview Questions (3) Android FAQs - Part 1 (2) Articles (13) ASP.NET Articles (24) ASP.NET Error and Resolution (4) ASP.NET Interview Questions (23) ASP.NET Tutorial (8) AWS Interview Questions (16) Business Analyst Interview Questions (1) Cloud Computing Interview Questions (16) CSharp Articles (17) CSharp Interview Questions (32) CSharp Tutorial (17) Data Analysis (2) Data Structure (1) Design Pattern Articles (5) DevOps Tutorial (1) Digital Marketing Interview Questions (1) Download Templates (1) Error Resolution (6) Excel Articles (9) Excel Macros (1) Excel Tips and Tricks (10) HTML5 Interview Questions (3) HTML5 Tutorial (3) Interview Preparation (2) Interview Questions (24) Introduction to Business Analytics (10) Introduction to Python (7) Introduction to R Programming (23) JAVA Articles (6) Java Tutorial (5) LINQ Articles (4) LINQ Interview Questions (2) LINQ Tutorial (3) Microservices Interview Questions (1) MVCInterviewQuestions (2) OOPs Interview Questions (4) Oracle 9i Tutorial (14) Oracle Articles (2) Oracle Interview Questions (15) Outlook Error (1) PHP Interview Questions (3) PHP Tutorial (3) Product Management (12) Product Management Interview Questions (14) Product Owner Interview Questions (2) Program Management (5) Project Management (13) Project Management Articles (34) Project Management Interview Questions (25) Quiz (1) RallyDev Help (1) Scrum Master Interview Questions (11) Selenium Tutorial (1) Sharepoint Articles (1) SQL Interview Questions (23) SQL Server Articles (20) SSIS Interview Questions (6) SSRS Interview Questions (1) Technical Program Management (12) Technical Program Management - Interview Questions (24) TechnicalProgramManagement (5) Threading Interview Questions (2) Tutorial (8) UML Articles (3) UML Interview Questions (2) Unix (3) UNIX Tutorial (3) WCF Articles (20) WCF Interview Questions (9) WCF Quiz (2) WCF Tutorial (16) Web Service Articles (5) Web Service Interview Questions (3) Window Azure (1) XML Articles (6) XML Interview Questions (3) XML Tutorial (3)