我一直在爲Windows Mobile和Android開發一段時間。我對這兩個概念感到困惑。枚舉VS靜態類(正常和字符串值)
比方說,我想根據用戶的設備屏幕尺寸做出決定。所以我會期待如此預定義的值。我可以使用switch語句來處理我的邏輯。 但我不確定我是否應該爲此使用靜態類的枚舉。哪一個是更好的方法。 我可以用這兩種不同的方式來做我的邏輯。哪一個是正確的方法?我很困惑。 我也可以使用字符串值嗎?因爲目前我堅持使用類,我需要更新以使用所有枚舉。那麼如何將我的類更改爲String Enum?任何方式。謝謝。
使用枚舉
//My predefined values
public enum ScreenSizeEnum
{
Small, Medium, Large, XLarge,
}
//Handling Logic
private void SetScreenSize(ScreenSizeEnum Screen)
{
switch (Screen)
{
case ScreenSizeEnum.Large:
//Do Logic
break;
case ScreenSizeEnum.Small:
//Do Logic
break;
}
}
使用類
//My predefined values
public class ScreenSizeClass
{
public const int Small = 0;
public const int Medium = 1;
public const int Large = 2;
public const int XLarge = 3;
}
//Handling Logic
private void SetScreenSize(int Screen)
{
switch (Screen)
{
case ScreenSizeClass.Large:
//Do Logic
break;
case ScreenSizeClass.Small:
//Do Logic
break;
}
}
使用枚舉的調試體驗要好得多(至少在c#中)。嘗試調試一個帶有100個開關「int」代碼的開關。 –
這個問題上有一個'Java'標記。您爲'enum'顯示的示例代碼不適用於Java。在使用'switch'時,Java中的枚舉不會像C#那樣工作。 – Squonk
是的。我知道。我在我的android應用程序中也完成相同的流程。我認爲如果我把java代碼也可能太長。但我希望這個概念是一樣的。 –