search

Enum in C#

Sep 03, 2024 pm 03:15 PM
c#c# tutorial

Enum is a reserved keyword in C#, which represents an enumeration. An Enumeration is a user-defined type in C# that holds a set of named constants. Each constant in the set has a value (by default, integers). The constants can be accessed through both names and values. Thus, the names cannot be duplicated in an enum. The syntax of an enum is straightforward. It starts with the keyword enum, followed by a variable name and a set of named constants wrapped in curly brackets. Of course, it ends with a semi-colon.

Syntax:

enum <enum_name> {<set_of_named_constants>};</set_of_named_constants></enum_name>

Example:

Code:

enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
enum Month { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };

Working of Enum in C#

Enums have an underlying type in C#. This means that every constant in the enum will have a value of the underlying type assigned to it. The default underlying type of enum in C# is an integer.

In the above enum Day, we have seven constants declared. It has a default underlying type of integer. Thus, every constant will have an integer value assigned to it. By default, the value starts at 0. Thus, Sun will have 0 assigned to it; Mon will have 1 assigned to it, Tue will have 2 assigned to it, and so on.

Let us take another example. We would assign the value 1 to Sun. This would force the compiler to start the assignment from 1 instead of 0. Then, we would assign the value 8 to Thu. The compiler would then continue the assignment from 8 onwards.

Example #1

Code:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
};
public static void Main()
{
for (int i = 0; i 
<p><strong>Output:</strong></p>
<p><img  src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/172534770851578.png?x-oss-process=image/resize,p_40" class="lazy" alt="Enum in C#" ></p>
<p>A real-world example can be the various stage in a client’s journey. Of course, all the constants can be declared separately and assigned corresponding integer values to it, but using an enum eliminates the hassle of remembering the integer values for each stage and makes the code much easier to understand.</p>
<h4 id="Example">Example #2</h4>
<p><strong>Code:</strong></p>
<pre class="brush:php;toolbar:false">using System;
public class Program
{
enum ClientJourney
{
Introduced = 1,
UnderReview = 2,
Reviewed = 3,
Documentation = 4,
Onboarded = 5,
Declined = 6,
Deboarded = 7
};
public static void Main()
{
Console.WriteLine("The various stages in the journey of a client are:\n");
foreach (string str in Enum.GetNames(typeof(ClientJourney)))
{
Console.WriteLine(str);
}
}
}

Output:

Enum in C#

Enum Methods in C#

Given below are the enum methods in C#:

1. GetName(Type, Int32)

The GetName method returns the named constant mapped to the specified value in the enum. If there is no named constant at that value, it returns a blank string.

This method expects two parameters – one is the type i.e. the enum itself, and the other is the specified value.

In the same example of Days above, we would print the named constants through the GetName method.

Code:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
for (int i = 0; i 
<p><strong>Output:</strong></p>
<p><strong><img  src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/172534771112772.png?x-oss-process=image/resize,p_40" class="lazy" alt="Enum in C#" ></strong></p>
<h4 id="GetNames-Type">2. GetNames(Type)</h4>
<p>In the above example, we had to use the for loop to retrieve all the named constants of the enum. The GetName method is more useful when we need a single or a limited number of named constants.</p>
<p>We have another method GetNames() to get all the named constants. It takes the enum as the input parameter.</p>
<p>In the same example of Days above, we would print the named constants through the GetNames method.</p>
<p><strong>Code:</strong></p>
<pre class="brush:php;toolbar:false">using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
foreach(string namedConstant in Enum.GetNames(typeof(Day))){
Console.WriteLine(namedConstant);
}
}
}

Output:

Enum in C#

3. GetValues(Type)

The GetValues() method is used to get the underlying mapped values to each of the enum’s named constants.

In the same example of Days above, we would print the named constants through the GetNames method.

Code:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
foreach (int i in Enum.GetValues(typeof(Day)))
{
Console.WriteLine(i);
}
}
}

Output:

Enum in C#

Rules for Enum in C#

Given below are the rules for the enum in C#:

  • Enum is a type, not a variable/constant/method.
  • Enum-named constants cannot be duplicated. They must be unique.
  • The underlying type of enum cannot be char.
  • The default underlying type of enum is an integer.
  • By default, the values assigned to enum-named constants start from 0, increasing by 1 for each successively named constant.

Advantages of Enum in C#

Given below are the advantages mentioned:

  • Enums are a very good coding practice. They are used to define the set of constants for the application or the program. Thus, the set remains constant and avoids chaos in the program, especially when it is a vast application involving multiple developers.
  • There are many scenarios in which enums can be used. Days of the week, months of the year, conversion ratios for temperatures, conversion factors for time zones, or any master table data for the application. This makes the code more readable and easier to understand.

Conclusion

Thus, we have seen the use of enum in C#. We have seen how it works and what can be its practical use. We understood the rules to comply with when using enums. Some methods help us access and format the enum. It is recommended to use enums in your code as much as possible. This will help you observe coding good practices and learn enums as well.

The above is the detailed content of Enum in C#. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
C# as a .NET Language: The Foundation of the EcosystemC# as a .NET Language: The Foundation of the EcosystemMay 02, 2025 am 12:01 AM

C# is a programming language released by Microsoft in 2000, aiming to combine the power of C and the simplicity of Java. 1.C# is a type-safe, object-oriented programming language that supports encapsulation, inheritance and polymorphism. 2. The compilation process of C# converts the code into an intermediate language (IL), and then compiles it into machine code execution in the .NET runtime environment (CLR). 3. The basic usage of C# includes variable declarations, control flows and function definitions, while advanced usages cover asynchronous programming, LINQ and delegates, etc. 4. Common errors include type mismatch and null reference exceptions, which can be debugged through debugger, exception handling and logging. 5. Performance optimization suggestions include the use of LINQ, asynchronous programming, and improving code readability.

C# vs. .NET: Clarifying the Key Differences and SimilaritiesC# vs. .NET: Clarifying the Key Differences and SimilaritiesMay 01, 2025 am 12:12 AM

C# is a programming language, while .NET is a software framework. 1.C# is developed by Microsoft and is suitable for multi-platform development. 2..NET provides class libraries and runtime environments, and supports multilingual. The two work together to build modern applications.

Beyond the Hype: Assessing the Current Role of C# .NETBeyond the Hype: Assessing the Current Role of C# .NETApr 30, 2025 am 12:06 AM

C#.NET is a powerful development platform that combines the advantages of the C# language and .NET framework. 1) It is widely used in enterprise applications, web development, game development and mobile application development. 2) C# code is compiled into an intermediate language and is executed by the .NET runtime environment, supporting garbage collection, type safety and LINQ queries. 3) Examples of usage include basic console output and advanced LINQ queries. 4) Common errors such as empty references and type conversion errors can be solved through debuggers and logging. 5) Performance optimization suggestions include asynchronous programming and optimization of LINQ queries. 6) Despite the competition, C#.NET maintains its important position through continuous innovation.

The Future of C# .NET: Trends and OpportunitiesThe Future of C# .NET: Trends and OpportunitiesApr 29, 2025 am 12:02 AM

The future trends of C#.NET are mainly focused on three aspects: cloud computing, microservices, AI and machine learning integration, and cross-platform development. 1) Cloud computing and microservices: C#.NET optimizes cloud environment performance through the Azure platform and supports the construction of an efficient microservice architecture. 2) Integration of AI and machine learning: With the help of the ML.NET library, C# developers can embed machine learning models in their applications to promote the development of intelligent applications. 3) Cross-platform development: Through .NETCore and .NET5, C# applications can run on Windows, Linux and macOS, expanding the deployment scope.

C# .NET Development Today: Trends and Best PracticesC# .NET Development Today: Trends and Best PracticesApr 28, 2025 am 12:25 AM

The latest developments and best practices in C#.NET development include: 1. Asynchronous programming improves application responsiveness, and simplifies non-blocking code using async and await keywords; 2. LINQ provides powerful query functions, efficiently manipulating data through delayed execution and expression trees; 3. Performance optimization suggestions include using asynchronous programming, optimizing LINQ queries, rationally managing memory, improving code readability and maintenance, and writing unit tests.

C# .NET: Building Applications with the .NET EcosystemC# .NET: Building Applications with the .NET EcosystemApr 27, 2025 am 12:12 AM

How to build applications using .NET? Building applications using .NET can be achieved through the following steps: 1) Understand the basics of .NET, including C# language and cross-platform development support; 2) Learn core concepts such as components and working principles of the .NET ecosystem; 3) Master basic and advanced usage, from simple console applications to complex WebAPIs and database operations; 4) Be familiar with common errors and debugging techniques, such as configuration and database connection issues; 5) Application performance optimization and best practices, such as asynchronous programming and caching.

C# as a Versatile .NET Language: Applications and ExamplesC# as a Versatile .NET Language: Applications and ExamplesApr 26, 2025 am 12:26 AM

C# is widely used in enterprise-level applications, game development, mobile applications and web development. 1) In enterprise-level applications, C# is often used for ASP.NETCore to develop WebAPI. 2) In game development, C# is combined with the Unity engine to realize role control and other functions. 3) C# supports polymorphism and asynchronous programming to improve code flexibility and application performance.

C# .NET for Web, Desktop, and Mobile DevelopmentC# .NET for Web, Desktop, and Mobile DevelopmentApr 25, 2025 am 12:01 AM

C# and .NET are suitable for web, desktop and mobile development. 1) In web development, ASP.NETCore supports cross-platform development. 2) Desktop development uses WPF and WinForms, which are suitable for different needs. 3) Mobile development realizes cross-platform applications through Xamarin.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.