빠 른 학습 c\#매 거 진

7348 단어 c#매 거
1.매 거 진 것 을 배우 기 전에 먼저 매 거 진 장점 을 들 어 봅 시다.
1.매 거 진 코드 를 더욱 선명 하 게 할 수 있 고 설명 적 인 이름 으로 전체 수 치 를 표시 할 수 있 습 니 다.
2.매 거 진 코드 를 쉽게 유지 하고 변수 에 합 법 적 이 고 기대 하 는 값 을 지정 하 는 데 도움 이 됩 니 다.
3.매 거 진 코드 를 쉽게 입력 합 니 다.
매 거 설명
1.간단 한 매 거
(1)enum 키 워드 를 사용 하여 클래스 와 같은 등급 으로 설명 합 니 다.매 거 진 자 체 는 수정자 가 있 을 수 있 지만 매 거 진 구성원 은 항상 공공 이 므 로 방문 수정자 가 있 을 수 없다.매 거 진 자체 의 장식 부 호 는 Public 와 internal 만 사용 할 수 있 습 니 다.
(2)매 거 진 값 형식 입 니 다.System.Enum 에서 암시 적 으로 계승 되 어 수 동 으로 수정 할 수 없습니다.System.Enum 자 체 는 인용 형식 으로 System.ValueType 에서 계승 합 니 다.
(3)매 거 진 것 은 모두 암시 적 으로 밀봉 되 어 있 으 며,기본 적 인 파 생 자 류 로 서 는 안 된다.
(4)매 거 진 유형의 매 거 진 구성원 은 모두 정적 이 고 기본 값 은 Int 32 형식 입 니 다.
(5)매 거 진 구성원 마다 관련 된 상수 치 를 가진다.이 값 의 유형 은 매 거 진 바 텀 데이터 형식 입 니 다.모든 매 거 진 구성원 의 상수 치 는 매 거 진 바 텀 데이터 형식의 범위 안에 있어 야 한다.바 텀 데이터 형식 을 명확 하 게 지정 하지 않 으 면 기본 데이터 형식 은 int 형식 입 니 다.
(6)매 거 진 구성원 은 같 을 수 없 지만 매 거 진 값 은 같 을 수 있다.
(7)마지막 멤버 의 쉼표 와 대괄호 뒤의 점 수 는 생략 할 수 있다.
C\#클래스 하 나 를 제공 하여 매 거 진 작업 을 편리 하 게 할 수 있 습 니 다.다음은 이러한 일반적인 방법 을 알려 드 립 니 다.
방법.
명칭.
CompareTo
이 인 스 턴 스 를 지정 한 대상 과 비교 하고 상대 값 에 대한 지 시 를 되 돌려 줍 니 다.
Equals
이 인 스 턴 스 가 지정 한 대상 과 같 는 지 표시 합 니 다.
Format
지정 한 형식 에 따라 매 거 진 형식의 지정 값 을 같은 효 과 를 가 진 문자열 표시 형식 으로 변환 합 니 다.
GetName
지정 한 매 거 진 에서 지정 한 값 을 가 진 상수 의 이름 을 검색 합 니 다.
GetNames
상수 이름 을 지정 한 배열 을 검색 합 니 다.
GetTypeCode
 이 인 스 턴 스 의 기본 TypeCode 를 되 돌려 줍 니 다.
GetUnderlyingType
지정 한 기본 형식 을 되 돌려 줍 니 다.
GetValues
열 거 된 상수 값 을 지정 한 배열 을 찾 습 니 다.
HasFlag
현재 인 스 턴 스 에 하나 이상 의 비트 필드 가 설정 되 어 있 는 지 확인 합 니 다.
IsDefined
지정 한 매 거 진 에 지정 한 값 이 있 는 상수 가 있 는 지 되 돌려 줍 니 다.
Parse
하나 이상 의 매 거 진 상수 의 이름 이나 숫자 값 의 문자열 을 같은 효 과 를 가 진 매 거 진 대상 으로 변환 합 니 다.하나의 매개 변 수 는 이 동작 이 대소 문 자 를 구분 하지 않 을 지 여 부 를 지정 합 니 다.
TryParse
하나 이상 의 매 거 진 상수 의 이름 이나 숫자 값 의 문자열 을 같은 효 과 를 가 진 매 거 진 대상 으로 변환 합 니 다.성공 적 인 반환 값 변환 여 부 를 표시 하 는 데 사용 합 니 다.
지정 한 바 텀 데이터 형식 을 표시 하 는 것 은 간단 합 니 다.설명 을 할 때 콜론 을 추가 하고 그 다음 에 지정 할 데이터 형식 을 따라 가 야 합 니 다.

 enum sex : byte  //             
 { 
  male,
  female,  //       
 };       //       
명시 적 으로 매 거 진 구성원 상수 값 을 설정 합 니 다.기본 값 은 0 부터 하나씩 증가 합 니 다.그러나 다음 예 는 1,2,3,4,5,6,7,0 으로 설정 됐다.그리고 멤버 값 은 똑 같 을 수 있어.

enum Week
 { 
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Sunday = 0,
     Everyday = 1  //            ,      
 }
  Console.WriteLine((int)Week.Monday);  //   
예제,매 거 진 값 으로 매 거 진 이름과 매 거 진 이름 으로 매 거 진 값 을 가 져 옵 니 다.

class Program
 {
  static void Main(string[] args)
  {
   Console.WriteLine(Enum.GetName(typeof(Man),1)); //      (      )

   string[] array1 = Enum.GetNames(typeof(Man));
   Console.WriteLine(array1[1]); //  

   Array array2 = Enum.GetValues(typeof(Man));
   Console.WriteLine(array2.GetValue(1)); //    

   Type t = Enum.GetUnderlyingType(typeof(Man));
   Console.WriteLine(t);  //   Int32

   //      
   int i = 1;
   string Name = Enum.Parse(typeof(Man), i.ToString()).ToString();  //   Name="  "
   Console.WriteLine(Name);

   //      
   string Name2 = "  ";
   int j = Convert.ToInt32(Enum.Parse(typeof(Man), Name2));  //   j=2
   Console.WriteLine(j);

   Console.ReadKey();
  }
 }

 enum Man
 { 
     = 1,
     = 2,
     = 3
 }
2.표지 매 거
표지 매 거 는 상단 에[System.Flags]특성 을 추가 하여 성명 해 야 합 니 다.그리고 조합 연산 을 일일이 지원 합 니 다.먼저 예 를 들 어 보 겠 습 니 다.

class Program
 {
  static void Main(string[] args)
  {
   var man = Week.  | Week. ; //   101     001  100,   101
   Console.WriteLine((int)man);
   if ((man & Week. ) == Week. )  //101 man 
   {         //001       ,
    Console.WriteLine("   ");  //001       ,      man    
   }
   else
   {
    Console.WriteLine("   ");
   }
   Console.ReadKey();
  }
 }

 [System.Flags]
 public enum Week
 { 
    = 1, //001
    = 2, //010
    = 4, //100
 }
이러한 비트 연산 은 매우 유용 하 며,sql 구문 에서 도 비트 연산 을 지원 합 니 다.즉,매 거 운 연산 후의 결 과 를 데이터베이스 에 저장 한 후에 도 당신 의 요구 에 따라 읽 을 수 있다 는 것 이다.예 를 들 면:
데이터베이스 와 같은'백미'를 데이터베이스 에 저장 하면 전체 5 에 저장 합 니 다.
그럼 모든'화이트'데이터 목록 을 읽 고 싶 은 데 어떻게 읽 을까요?백,순백'1'일 수도 있 고 백부 3 일 수도 있 고 백미 5 일 수도 있 고 백부 미 7 일 수도 있 습 니 다.인 으로 읽 을 수 있 지만 더 좋 은 방법 은 sql 구문 에서 똑 같이 비트 연산 을 사용 하 는 것 입 니 다.

select * from Table1 where Tag & 1 = 1  //Tag   

select * from Table1 where Tag | 1 = Tag
3.매 거 진 사용 건의
매개 변수,반환 값,변수 등 유형 이 매 거 될 때 매 거 진 을 사용 할 수 있 습 니 다(분류의 안정성 을 고려 해 야 합 니 다)
대부분의 경우 int 형식 을 사용 하여 매 거 할 수 있 으 며,아래 의 경 우 는 제외 합 니 다.
매 거 진 은 대량으로 자주 사 용 될 수 있 습 니 다.이 때 는 공간 을 절약 하기 위해 int 보다 작은 매 거 진 을 사용 할 수 있 습 니 다.
표지 가 매 거 되 고 표지 가 32 개 보다 많다.
다음은 다음 과 같 습 니 다.MVC 3 드 롭 다운 목록 을 연결 하 는 예제 입 니 다.
컨트롤 러 코드:

namespace MvcStart.Controllers
{
 public class HomeController : Controller
 {
  public ActionResult GetSexList()
  {
   Dictionary<string, int> Sexlist = new Dictionary<string, int>();
   string[] keys = Enum.GetNames(typeof(sex));
   Array values = Enum.GetValues(typeof(sex));

   for (int i = 0; i < keys.Length; i++)
   {
    Sexlist.Add(keys[i], (int)values.GetValue(i));
   }

   return View(Sexlist);
  }
 }

 public enum sex
 { 
  male = 1,
  female = 2,
  other = 3
 }
}
보기 코드:

@model Dictionary<string, int>
<select>
 @foreach(var item in @Model)
 {
  <option value="@item.Value">@item.Key</option>
 }
</select>
생 성 된 HTML 코드:

<select>
  <option value="1">male</option>
  <option value="2">female</option>
  <option value="3">other</option>
</select>
예 를 들 어 매 거 진 설명 을 가 져 옵 니 다.

public static class GetDescription
 {
  /// <summary>
  ///       
  /// </summary>
  /// <param name="en"></param>
  /// <returns></returns>
  public static string description(this Enum en)
  {
   Type type = en.GetType();
   MemberInfo[] memInfo = type.GetMember(en.ToString());
   if (memInfo != null && memInfo.Length > 0)
   {
    object[] attrs = memInfo[0].GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), false);
    if (attrs != null && attrs.Length > 0)
     return ((DescriptionAttribute)attrs[0]).Description;
   }
   return en.ToString();
  }
 }

 public enum Sex
 {
  [Description(" ")]
  man = 1,
  [Description(" ")]
  woman = 2,
  [Description("  ")]
  other = 3
 }
이상 은 c\#매 거 진 상세 한 내용 을 빠르게 학습 하 는 것 입 니 다.c\#매 거 진 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기