Provide C# code. Enums An enum is a user-define type like a class….

Question Answered step-by-step Provide C# code. Enums An enum is a user-define type like a class…. Provide C# code. EnumsAn enum is a user-define type like a class. However, all the members are constants with implied values. It provides an efficient way of defining a set of named integral constants such as the days of the week or months of the year or even the set of pre-defined colors. It supports a more robust programming style e.g. If you have a method that expects a month as an argument of type to a string, you will have do lots of defensive programming, instead define an enum type that has the 12 months. During development, the compiler will do the necessary checks for the require type hence you will do less programming. Static membersThe static decorator when used on a member indicates that member belongs to the type rather than an object. You will access that member using the type rather than an object reference. Static methods or properties may only access other static members. The only instance member that can be accessed is the  constructor.You can recognize an instance member by the absence of the static modifier. Instance methods are able to access other instance members as well as class members.The TimeFormat EnumSometimes you don’t even care about the underlining values as in this case or, (Maritial status: Single, Married, Widowed etc.), (Sale status: Confirmed, Shipped, Paid etc.)  TimeFormatEnumValues   Mil   Hour12   Hour24  You may define/code this type in the Time.cs file, but it should be external to the Time class. The Time ClassCode the Time class below:This class comprise of six members: a field, two properties and two methods and a constructor a SetTimeFormat() and a ToString() method. All the fields are private and all the methods are public  TimeClassFields Properties-$ TIME_FORMAT = TimeFormat.Hour12    : TimeFormat+  «setter absent» Hour               : int+  «setter absent» Minute             : intMethods+  «constructor» Time(hour = 0 : int, minute = 0: int)+  ToString()                         : string$+ SetFormat(timeFormat : TimeFormat) : void  Description of class membersFields:There are no fields for this class.Properties:TIME_FORMAT – this class variable is of type TimeFormat and it represents the intended format of the ToString()method. This field has private accessibility and it initializes to TimeFormat.Hour12 at declaration.Hour – this is an integer representing the hour value this object. This property has public read access and the setter is missing.Minute – this is an integer representing the minute value this object. This property has public read access and the setter is missing. Constructor:public Time(int hours = 0, int minutes = 0) – This is a public constructor that takes two integer arguments with default values of 0. If checks if the first argument is between 0 and 24 it assigns it to the Hour property otherwise a value of 0 is assign to the hour property. Similarly the second argument is check if it is between 0 and 60 then it is assigned to the Minute property otherwise a value of 0 is assigned to the Minute property.Methods:public override string ToString() – This public method overrides the ToString of the object class. It does not take any argument and returns a string representation of the object. The return value will depend on the field TIME_FORMATvalue of the class. So it is a good plan if you use a switch statement to handle the three possibilities. Your switch statement should check the value of the TIME_FORMAT field. A switch statement is probably the simplest way to implement this functionalityIf you have a Time object with the hours value as 18 and the minutes value as 5 then the print out of the object will be  “1805” if TIME_FORMAT is set to TimeFormat.MIL. Use the d2 format specifier to get the leading zero.”18:05″ if TIME_FORMAT is set to TimeFormat.HOUR24. Again, use the d2 format specifier to get the leading zero.”6:05 PM” if TIME_FORMAT is set to TimeFormat.HOUR12. Again, use the d2 format specifier to get the leading zero.  This method must be static because it needs to access a static field.public static void SetTimeFormat(TimeFormat time_format) – This a class method that is public. It takes a single TimeFormat argument and assigns it to the static TIME_FORMAT field.     Test HarnessInsert the following code statements in your Program.cs file:   //Build a list to store the objectsList