根據數據庫返回了哪些設置我的枚舉值時,如何將我寫的內聯IF語句在我的C#類服務?在線IF語句在C#
例如:當返回的數據庫值是1,則枚舉值設置爲VariablePeriods,則當2 FixedPeriods。
希望能對你有所幫助。
根據數據庫返回了哪些設置我的枚舉值時,如何將我寫的內聯IF語句在我的C#類服務?在線IF語句在C#
例如:當返回的數據庫值是1,則枚舉值設置爲VariablePeriods,則當2 FixedPeriods。
希望能對你有所幫助。
字面上的答案是:
return (value == 1 ? Periods.VariablePeriods : Periods.FixedPeriods);
注意,內聯if語句,就像if語句,只爲檢查true或false。如果(價值== 1)評估爲假,它可能並不一定意味着價值== 2,因此,會是這樣更安全:
return (value == 1
? Periods.VariablePeriods
: (value == 2
? Periods.FixedPeriods
: Periods.Unknown));
如果你添加更多的價值內嵌如果將變得不可讀和開關將是首選:
switch (value)
{
case 1:
return Periods.VariablePeriods;
case 2:
return Periods.FixedPeriods;
}
約枚舉的好處是,他們有一個值,這樣你就可以使用的值的映射,如user854301建議。這樣可以防止不必要的分支,從而使代碼更具可讀性和可擴展性。
你可以做內聯IFS與
return y == 20 ? 1 : 2;
如有虛假,這將給你1,如果真和2。
你可以定義你的enum
像這樣和使用投在需要的地方
public enum MyEnum
{
VariablePeriods = 1,
FixedPeriods = 2
}
使用
public class Entity
{
public MyEnum Property { get; set; }
}
var returnedFromDB = 1;
var entity = new Entity();
entity.Property = (MyEnum)returnedFromDB;
這樣看看,因爲它阻止分支。 – chiccodoro 2012-08-16 07:02:48
已經在我的實體類中有這個。需要根據服務類中從數據庫返回的內容設置Enum。這就是爲什麼我需要做一個內聯IF聲明? – Landi 2012-08-16 07:06:41
都能跟得上你可以簡單地設置您需要的屬性 – user854301 2012-08-16 07:09:21
枚舉爲int:(int)Enum.FixedPeriods
詮釋,以枚舉:(Enum)myInt
這是你所需要的:三元運算符,請在此
http://msdn.microsoft.com/en-us/library/ty67wk28%28v=vs.80%29.aspx
建議的轉換分支這是條件運算符。這恰好是**三元運算符。任何三參數運算符都是「三元」的。 – 2012-08-16 07:16:36
@Ysterhak:很高興幫助。我仍然想知道爲什麼你更喜歡使用按照user854301 – chiccodoro 2012-08-16 08:29:26