私は2つのプロジェクトを持っています。
1) 名前空間に Enum 拡張メソッドを含むもの (ライブラリ):
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 クラス呼び出しに触れずに拡張クラスを追加するには?
ありがとう!