1
我目前正在編寫一個查看SQL代理作業的應用程序。我試圖將FrequencyInterva l屬性轉換爲7 bool字段(每天一個)將Int32轉換爲布爾
我在考慮對每種可能的組合使用case語句,但想知道是否有更有效的方法?
我目前正在編寫一個查看SQL代理作業的應用程序。我試圖將FrequencyInterva l屬性轉換爲7 bool字段(每天一個)將Int32轉換爲布爾
我在考慮對每種可能的組合使用case語句,但想知道是否有更有效的方法?
你不需要七個bool變量,但是你可以用attribute Flags定義一個枚舉值,其值等於爲那個屬性定義的值。 然後將FrequencyInterval屬性分配給此枚舉類型的變量。
[Flags]
public enum frequencyDaysEnum
{
Sunday = 1,
Monday = 2,
Tuesday = 4,
Wednesday = 8,
Thursday = 16,
Friday = 32,
Saturday = 64,
// You can also add these but they are not necessary
// WeekDays = 62,
// WeekEnds = 65,
// EveryDay = 127
}
void Main()
{
int value = 65; // <= this is the value of your property
frequencyDaysEnum days = (frequencyDaysEnum)value;
if(days.HasFlag(frequencyDaysEnum.Saturday))
Console.WriteLine("It has frequency on Saturday");
if (days.HasFlag(frequencyDaysEnum.Sunday))
Console.WriteLine("It has frequency on Sunday");
}
閱讀完這篇文章後,該頁面上引用的Weekdays枚舉變得有意義,所以我使用它而不是寫我自己的。非常感謝。 –
你能提供一些代碼 –
沿途也許一些['BitConverter'(https://msdn.microsoft.com/de-de/library/windows/apps/system.bitconverter_members(V = VS .85).aspx)可以提供幫助嗎? –
不是一個真正的答案,但爲什麼不只是創建一個自定義方法,就像3行代碼爲您轉換它?可能更容易一些。 – jdmdevdotnet