我有這樣的枚舉:一個枚舉只能保存數值而不是字符串?
enum ASCIIChars
{
BLACK = "@",
CHARCOAL = "#",
DARKGRAY = "8",
MEDIUMGRAY = "&",
MEDIUM = "o",
GRAY = ":",
SLATEGRAY = "*",
LIGHTGRAY = ".",
WHITE = " "
};
這裏是我使用它:
private void GetShadeColor(int redValue)
{
string ASCII = " ";
if (redValue >= 230)
{
ASCII = ASCIIChars.WHITE;
}
else if (redValue >= 200)
{
ASCII = ASCIIChars.LIGHTGRAY;
}
else if (redValue >= 180)
{
ASCII = ASCIIChars.SLATEGRAY;
}
else if (redValue >= 160)
{
ASCII = ASCIIChars.GRAY;
}
else if (redValue >= 130)
{
ASCII = ASCIIChars.MEDIUM;
}
else if (redValue >= 100)
{
ASCII = ASCIIChars.MEDIUMGRAY;
}
else if (redValue >= 70)
{
ASCII = ASCIIChars.DARKGRAY;
}
else if (redValue >= 50)
{
ASCII = ASCIIChars.CHARCOAL;
}
else
{
ASCII = ASCIIChars.BLACK;
}
ASCIIArt.Append(ASCII);
}
我得到的枚舉聲明以下錯誤:
無法隱式轉換字符串INT。
順便說一句,這是一種可怕的方式來將顏色轉換爲單色。 – 2010-07-11 01:02:29
@Ed - 他沒有轉換爲單色,它會出現他將紅色陰影映射到ASCII字符以生成ASCII藝術。你有更好的方式來做這件事嗎? – 2010-07-11 02:25:30