Extension methods with Enumeration C# with Example



Extension methods with Enumeration C# with Example

Extension methods are useful for adding functionality to enumerations. 
One common use is to implement a conversion method. 
public enum YesNo 
{ 
Yes, 
No, 
} 
public static class EnumExtentions 
{ 
public static bool ToBool(this YesNo yn) 
{ 
return yn == YesNo.Yes; 
} 
public static YesNo ToYesNo(this bool yn) 
{ 
return yn ? YesNo.Yes : YesNo.No; 
} 
} 
Now you can quickly convert your enum value to a different type. In this case a bool. 
bool yesNoBool = YesNo.Yes.ToBool(); // yesNoBool == true 
YesNo yesNoEnum = false.ToYesNo(); // yesNoEnum == YesNo.No 
Alternatively extension methods can be used to add property like methods. 
public enum Element 
{ 
Hydrogen, 
 

Helium, 
Lithium, 
Beryllium, 
Boron, 
Carbon, 
Nitrogen, 
Oxygen 
//Etc 
} 
public static class ElementExtensions 
{ 
public static double AtomicMass(this Element element) 
{ 
switch(element) 
{ 
case Element.Hydrogen: return 1.00794; 
case Element.Helium: return 4.002602; 
case Element.Lithium: return 6.941; 
case Element.Beryllium: return 9.012182; 
case Element.Boron: return 10.811; 
case Element.Carbon: return 12.0107; 
case Element.Nitrogen: return 14.0067; 
case Element.Oxygen: return 15.9994; 
//Etc 
} 
return double.Nan; 
} 
} 
var massWater = 2*Element.Hydrogen.AtomicMass() + Element.Oxygen.AtomicMass(); 

0 Comment's

Comment Form

Submit Comment