=================================================================================
public class StringValue : System.Attribute
{
private string _value;
public StringValue(string value)
{
_value = value;
}
public string Value
{
get { return _value; }
}
}
public class StringEnum
{
/// <summary>
/// enum에 String 사용시 enum 상수의 문자열값을 구한다.
/// </summary>
/// <typeparam name="T">임의의 enum형</typeparam>
/// <param name="value">임의의 enum형 변수</param>
/// <returns>enum 상수의 문자열값</returns>
public static string GetStringValue<T>(T value)
{
string output = "";
Type type = value.GetType();
FieldInfo fi = type.GetField(value.ToString());
StringValue[] attrs = fi.GetCustomAttributes(typeof(StringValue), false) as StringValue[];
if (attrs.Length > 0)
{
output = attrs[0].Value;
}
return output;
}
=================================================================================
/// <summary>
/// ID
/// </summary>
public enum TestID
{
Foundation = 1,
Unknown = 0xFF
}
public enum TestName
{
[StringValue("기초")]
Foundation = TestID.Foundation,
[StringValue("알수없슴")]
Unknown = TestID.Unknown,
}
public class TestUtil
{
#region Member variable
static public string Foundation
{
get { return StringEnum.GetStringValue(Enum.Parse(typeof(TestName), TestID.Foundation.ToString())); }
}
static public string Unknown
{
get { return StringEnum.GetStringValue(Enum.Parse(typeof(TestName), TestID.Unknown.ToString())); }
}
#endregion
static public List<string> Names()
{
List<string> results = new List<string>();
foreach (TestName value in Enum.GetValues(typeof(TestName)))
results.Add(StringEnum.GetStringValue(Enum.Parse(typeof(TestName), value.ToString())));
return results;
}
static public List<TestID> IDs()
{
List<TestID> results = new List<TestID>();
foreach (TestID value in Enum.GetValues(typeof(TestID)))
results.Add(value);
return results;
}
static public string Name(TestIDid)
{
return StringEnum.GetStringValue(Enum.Parse(typeof(TestName), id.ToString()));
}
static public TestIDID(TestName name)
{
return (TestID)Enum.Parse(typeof(TestID), name.ToString());
}
static public TestID ID(string name)
{
return (TestID)Enum.Parse(typeof(TestID), name);
}
}
'기본카테고리' 카테고리의 다른 글
[C#] DataGridView에서 가로 Scrollbar가 표시가 안되게... (0) | 2020.10.31 |
---|---|
[C#] 윈도우의 이벤트 뷰어에서 [Windows 로그]를 생성하는 예제 (0) | 2020.08.29 |
[C#] 윈폼과 콘솔창을 같이 사용하기 위한 콘솔창 할당하기 (0) | 2016.09.10 |
[C#]쓰레드 사용 (0) | 2016.09.10 |
[C#]엑셀파일을 저장한다. (0) | 2016.07.24 |