[C#] 범용 방법의 묘용
2341 단어 C#
여기에 실례를 통해 범형이 가져온 좋은 점을 예시한다.
프로젝트는 중국어와 영어가 서로 번역되는 상황을 만났지만 인터페이스가 호출된 관계로 백엔드에서 되돌아오는 결과는 매거로 정의되고 매거의 종류와 수량이 많다.예를 들어 역할 열거, 실행 모드 열거, 사용자 권한 열거, 사용자 사용 열거 등 예를 들면 다음과 같다.
///
///
///
[Serializable]
[DataContract]
public enum UserEnable
{
[EnumMember] = 0,
[EnumMember] = 1,
}
그러면 대응하는 것은 바로 영어의 매거이다.
///
///
///
[Serializable]
[DataContract]
public enum UserEnable
{
[EnumMember] User_Disable = 0,
[EnumMember] User_Enabled = 1,
}
최초의 해결 방식은 switch를 사용하고 모든 중국어를 하나하나 열거하면case로 그 중의 영문 문자열에 대응하여 간단하고 직관적이다.다음과 같이 나타납니다.
public static string UserEnableToEnglish(UserEnable para)
{
string result;
switch(para){
case UserEnable. :
result = "Enale";break;
case UserEnable. :
result = "Disale";break;
}
return result;
}
이렇게 하나하나 이런 방법을 써야 하니 코드가 매우 비대해질 것이다.모두 매거적인 전환이기 때문에 다태적인 사상을 참조하면 유사한 코드 논리는 틀림없이 간소화할 수 있을 것이다.따라서 다음과 같은 일반적인 방법 처리 방식이 생겼다.
///
///
///
///
///
///
///
public static string ConvertChineseToEnglish(string result)
{
string englishStr = "The_result_does_not_exist";
string[] array = Enum.GetNames(typeof(T1));
int i = 0;
while (i < array.Length)
{
if (array[i] == result)
{
string[] engStr = Enum.GetNames(typeof(T2));
englishStr = engStr[i];
break;
}
i++;
}
return englishStr.Replace("_"," ");
}
마지막으로 호출 방식은 다음과 같다.
String result = " ";
string value = ConvertChineseToEnglish(result);
마지막으로, 이 일반적인 방법은 프로젝트에서 적어도 이삼백 줄의 코드를 절약했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.