![](/img/trans.png)
[英]How to assign the ResourceDictionary string as switch case Constant Expression?
[英]How to do a switch case or string format within an expression block
如何在表達式主體中實現切換大小寫(或類似效果)? 我正在創建一個Model對象(稱之為MyModel),並且其中一個字段是重復字段。 重復周期基於一周中的當前日期(下面是星期一的示例)。 基本上我想將Weekly____設置為true。 我還認為,潛在的String.Format()可以提供一些支持,但是我無法使其正常工作。
var my = new MyModel
{
Recurrence = new RecurrenceModel
{
WeeklyMonday = true //what it would be on a Monday
}
};
我對開關盒的嘗試
var my = new MyModel
{
switch(DateTime.Today.DayOfWeek.ToString())
case "Monday":
Recurrence = new RecurrenceModel
{
WeeklyMonday = true
}
break;
default:
break;
};
我對String.Format()的嘗試
var my = new MyModel
{
Recurrence = new RecurrenceModel
{
String.Format("Weekly{0}", DateTime.Today.DayOfWeek.ToString()) = true
}
};
我猜您是C#的新手?
您需要做的是這樣的事情
var my = new MyModel
{
Recurrence = new RecurrenceModel
{
WeeklyMonday = DateTime.Today.DayOfWeek == DayOfWeek.Monday
}
};
在這兩次嘗試中,您實際上都沒有將值分配給屬性。 您的代碼無效C#,因此無法編譯。 您不需要開關或string.Format即可實現所需的功能。
在我的示例中,我將DateTime.Today.DayOfWeek == DayOfWeek.Monday
的結果分配給模型類的WeeklyMonday
屬性
simonlchilds是對的。 最好的方法是在類的構造函數中,評估當日的值以將哪個屬性設置為true。
我個人會做這樣的事情。
class RecurrenceModel
{
public RecurrenceModel()
{
GetType().GetProperty("Weekly" + DateTime.Today.DayOfWeek).SetValue(this, true);
}
public bool WeeklyMonday { get; set; }
public bool WeeklyTuesday { get; set; }
public bool WeeklyWednesday { get; set; }
public bool WeeklyThursday { get; set; }
public bool WeeklyFriday { get; set; }
public bool WeeklySaturday { get; set; }
public bool WeeklySunday { get; set; }
}
這樣,無論何時實例化此類,它都會自動將日期設置為true,這就是您需要做的所有事情。
var my = new MyModel
{
Recurrence = new RecurrenceModel()
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.