2017-01-30 1 views
-1

사용자에게 친숙한 이름으로 표시하는 요일 범위 (일요일에서 금요일까지)를 나타내는 열거 형 값이 있습니다. enum dayofweek 값을 부여하는 것이 좋습니다.

나는 그것을 값

(SunTilTHur = DayOfWeek.Sunday + DayOfWeek.Monday + DayOfWeek.Tuesday) 

하지만

스위치 문은 레이블 값

코드 I 여러 사례를 포함하는 오류를 받고 있어요을 주려고 노력 시도 :

public MyDayOfWeek Days { get; set; } 
public string DaysFriendlyName => this.Days.ToFriendlyName();` 
public enum MyDayOfWeek 
{ 
    Sunday = DayOfWeek.Sunday, 
    Monday = DayOfWeek.Monday, 
    // .. 

    SunTilFir = DayOfWeek.Sunday + DayOfWeek.Monday + DayOfWeek.Tuesday,//+... 

    public static string ToFriendlyName(this MyDayOfWeek days) 
    { 
     switch (days) 
     { 
      case MyDayOfWeek.SunTilFir: 
        return @Resources.FormResources.SunTilFri; 

이 값과 방법을 설정할 수 있습니까? 미리 감사드립니다.

+3

[플래그 속성] (http://stackoverflow.com/questions/8447/what-does-the-flags-enum-attribute-mean-in-c)을 살펴보십시오. – krillgar

+1

후자는 플래그 열거 형에 대해 발생하지 않는 증분 값을 사용하기 때문에 열거 형을 'DayOfWeek'와 독립적으로 만들어야합니다. – poke

+0

@krillgar, 나는 그것이 올바른지 이해하고, 플래그를 사용하여 시스템이 (E.G. 화요일)의 값을 얻기 위해 쿼리를 작성하지 않을 것입니다. 그냥 문자열. –

답변

2

DayOfWeek 열거 형을 열거 형으로 묶을 필요가 없습니다. 나 자신의 도우미 클래스를 만들고 수표 범위를 만족시키는 데 필요한 메서드를 추가 할 것입니다. 나는 일이 지불 시스템을 위해 일 또는 주말 등 언제인지 알 필요가있을 때 아래에 유사한 접근을 사용했다. 그것은 일하는 것처럼 보였다.

public static class MyDayHelper 
{ 
    public static bool IsWeekDay(DayOfWeek myday) 
    { 
     return myday >= DayOfWeek.Monday && myday <= DayOfWeek.Friday; 
    } 

    public static bool IsWeekEnd(DayOfWeek myday) 
    { 
     return myday == DayOfWeek.Saturday || myday == DayOfWeek.Sunday; 
    } 

    public static string ReturnWeekdays() 
    { 
     return string.Format("{0},{1},{2},{3},{4}", DayOfWeek.Monday, DayOfWeek.Tuesday, 
      DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday); 
    } 

    public static string SunTilFri 
    { 
     get 
     { 
      return string.Format("{0},{1},{2},{3},{4},{5}", DayOfWeek.Sunday, DayOfWeek.Monday, DayOfWeek.Tuesday, 
       DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday); 
     } 
    } 

} 

당신은 분명히 현재의 일이 당신이 해결책을 마련하는 데 도움이 희망

var myDay = DateTime.Now.DayOfWeek; 

      if (MyDayHelper.IsWeekDay(myDay)) 
      { 
       //Do something 
      } 

      if (MyDayHelper.IsWeekEnd(myDay)) 
      { 
       //Do something 
      } 

무엇 당신은에 따라 조건을 테스트 할 수 있습니다 ... 당신을위한 관련 방법을 추가 할 수 있습니다.

+0

, 감사합니다. 그렇습니다. –