我有两个项目。
1)一个(库)在命名空间中包含枚举扩展方法:
namespace Enum.Extensions
{
public static class EnumerationExtensions
{
public static bool Has<T>(this System.Enum type, T value)
{
try
{
return (((int)(object)type & (int)(object)value) == (int)(object)value);
}
catch
{
return false;
}
}
}
}
2)其次,控制台应用程序引用了上述库并尝试使用其新方法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Enum.Extensions;
namespace XMLExtensionsTest
{
public enum ProcesInfo
{
ifCreate = 1,
ifRun1 = 2,
IfRun2 = 4,
IFRun3 = 8
}
class Program
{
static void Main(string[] args)
{
ProcesInfo enumInfo = ProcesInfo.ifCreate;
enumInfo = enumInfo.Add(ProcesInfo.IfRun2);
bool value = enumInfo.Has(ProcesInfo.ifCreate);
bool value2 = enumInfo.Has(ProcesInfo.ifRun1);
bool value3 = enumInfo.Has(ProcesInfo.IfRun2);
bool value4 = enumInfo.Has(ProcesInfo.IFRun3);
}
}
}
现在,由于该 Extensions 类,所有标准 Enum 类型都无法访问。我不能写:
public void Test(Enum test)
{
}
但需要:
public void Test(System.Enum test)
{
}
在没有“系统”的情况下使用 Enum 的地方有数千个。如何在不触及现有 Enum 类调用的情况下添加 Extensions 类?
谢谢!