【发布时间】:2013-12-30 07:17:52
【问题描述】:
它编译得非常好,但是当我有一个枚举数组时不会让我访问该方法。我有另一个扩展单个枚举值的函数,它可以在任何类型的枚举上完美运行,并通过智能感知显示,但不适用于枚举数组。我可以不这样做吗,它与字符串和整数数组完美配合
public static class MyExtensions
{
public static void WriteCompressed (this Enum[] towrite, Stream output)
{
.... Function Code ....
}
}
***更新这也是我更改的内容,您不能将定义的枚举数组转换为 Enum[]
public static class EnumExtensions
{
public static void WriteCompressedEnums<T>(this T[] towrite, Stream output) where T : struct, IConvertible
{
if (towrite == null)
{
Serialization.ObjectConversion.writeCompressedInt(output, 0);
return;
}
towrite.Length.WriteCompressed(output);
Type enumtype = Enum.GetUnderlyingType(typeof(T));
for (int i = 0; i < towrite.Length; i++)
{
Object value = Convert.ChangeType(towrite, enumtype);
long written;
if (value is ulong)
{
written = (long)((ulong)value);
}
else
{
written = (long)Convert.ChangeType(value, typeof(long));
}
written.WriteCompressed(output);
}
return;
}
}
【问题讨论】:
-
您是否在要使用此扩展方法的类中包含正确的命名空间?你的班级是静态的吗?
-
@KevinBrechbühl 是的,我用于编写单个压缩枚举的另一个函数与 this 在同一个类中,我在需要调用它的同一个调用函数中使用它。它也是最新编译的
-
它对我有什么作用? i.imgur.com/Ji6LDnd.png
-
@Selman22 将 Enum[] 更改为自定义或已定义的枚举数组,而不是继承的基类
-
您能提供您的自定义课程代码吗?我不明白你是什么意思
custom or already defined enum array枚举类不能被继承
标签: c# enums extension-methods intellisense enumeration