Mercurial > pub > ImplabNet
comparison Implab/Parsing/EnumAlphabet.cs @ 156:97fbbf816844 v2
Promises: SignalXXX methods merged into SignalHandler method.
Components: RunnableComponent In progress
author | cin |
---|---|
date | Mon, 15 Feb 2016 04:22:15 +0300 |
parents | 653c4e04968b |
children | 130781364799 |
comparison
equal
deleted
inserted
replaced
155:037df317f126 | 156:97fbbf816844 |
---|---|
1 using Implab; | 1 using System; |
2 using System; | |
3 using System.Collections.Generic; | 2 using System.Collections.Generic; |
4 using System.Diagnostics; | 3 using System.Diagnostics; |
5 using System.Globalization; | 4 using System.Globalization; |
6 using System.Linq; | 5 using System.Linq; |
7 using System.Text; | 6 using System.Diagnostics.CodeAnalysis; |
8 using System.Threading.Tasks; | |
9 | 7 |
10 namespace Implab.Parsing { | 8 namespace Implab.Parsing { |
11 /// <summary> | 9 /// <summary> |
12 /// Алфавит символами которого являются элементы перечислений. | 10 /// Алфавит символами которого являются элементы перечислений. |
13 /// </summary> | 11 /// </summary> |
14 /// <typeparam name="T">Тип перечислений</typeparam> | 12 /// <typeparam name="T">Тип перечислений</typeparam> |
15 public class EnumAlphabet<T> : AlphabetBase<T> where T : struct, IConvertible { | 13 public class EnumAlphabet<T> : AlphabetBase<T> where T : struct, IConvertible { |
14 [SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes")] | |
16 static readonly T[] _symbols; | 15 static readonly T[] _symbols; |
17 static readonly EnumAlphabet<T> _fullAlphabet; | 16 static readonly EnumAlphabet<T> _fullAlphabet; |
18 | 17 |
19 [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] | 18 [SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] |
20 static EnumAlphabet() { | 19 static EnumAlphabet() { |
21 if (!typeof(T).IsEnum) | 20 if (!typeof(T).IsEnum) |
22 throw new InvalidOperationException("Invalid generic parameter, enumeration is required"); | 21 throw new InvalidOperationException("Invalid generic parameter, enumeration is required"); |
23 | 22 |
24 if (Enum.GetUnderlyingType(typeof(T)) != typeof(Int32)) | 23 if (Enum.GetUnderlyingType(typeof(T)) != typeof(Int32)) |