5
基本的に、C#で列挙型を宣言すると、デフォルトでどのインターフェイスが実装されていますか?C#enumがデフォルトで実装するインターフェイス
public enum Group
{
Unknown,
Children,
Teens,
YoungAdults,
Adults,
}
基本的に、C#で列挙型を宣言すると、デフォルトでどのインターフェイスが実装されていますか?C#enumがデフォルトで実装するインターフェイス
public enum Group
{
Unknown,
Children,
Teens,
YoungAdults,
Adults,
}
なぜ簡単なプログラムでは見つからないのですか?
foreach(var interfaceType in typeof(Group).GetInterfaces())
{
Console.WriteLine(interfaceType);
}
出力:FYI
System.IComparable
System.IFormattable
System.IConvertible
、MSDNによると、次の宣言が列挙基本型System.Enum、から来るこれらのすべて:
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Enum : ValueType,
IComparable, IFormattable, IConvertible
興味深い...私はいつも代わりに基礎となる型のインタフェースを実装すると仮定しました。 –
私はそのようなプログラムは必ずしもクラスによって実装されたすべてのインタフェースを示すとは思わない。例えば、 'DeristType []'は 'IList'を実装しますが、 'IList 'は共変ではなく、 'IList 'はリストされたインタフェースの中には含まれません。 –
supercat