-1

enumを選択した値でにキャストする必要がありintますか?

MessageTypeタイプのDBの列ですint

.Where(x => x.MessageType == MyEnum.Sms)

このコードは次のように述べています。

「型「int」および ClassLibrary.MyEnum の演算子「==」を適用できません」

enumにキャストされている場合に機能しますint

.Where(x => x.MessageType == (int) MyEnum.Sms)

私の列挙型:

public enum MyEnum
{
    None = 0,
    Sms = 1,
    Email = 2
}
4

2 に答える 2

0

Enum の基になる型は、任意の整数型にすることができます。指定しない場合、デフォルトで int32 になります。列挙型には整数の明示的な等値比較がないため、キャストが必要です。他の列挙型のみです。現在ように明示的にキャストすることをお勧めします。見る:

http://msdn.microsoft.com/en-us/library/system.enum.aspx

于 2013-06-05T14:19:10.447 に答える