2つの同様のソリューションからC#コードをマージする必要がありますが、enumの問題があります。 このプロジェクトでは.net2.0を使用しています。私はそれをとしても使用しなければなりません。 プロジェクトは、同じ名前を持つ列挙型が含まれているいくつかの一般的なクラスが、いくつかの違いがあります:第二のプロジェクトが同一であるC#のコードと少し違いのあるenumとのマージ
tmpChild.Type == typeof(LETTERS);
this._data.LTR = (LETTERS)valueListUpDown_LTS.Value;
AddData(new SFunc(0,typeof(LETTERS), LETTERS.A));
LETTERS letters = LETTERS.a;
:よう
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
namespace MyProject
{
public enum LETTERS
{
non = 0,
a = 1,
b = 2,
c = 3
}
public class MyClass
{
public int v = 0;
.
.
.
public LETTERS lt = 0; // my enum
}
}
は、この「列挙型」の他の多くの用途もあります。しかし、列挙型は次のようになります。
public enum LETTERS
{
a = 0,
b = 1,
c = 2
}
ありコードでこれらの列挙型の多くの様々な用途があると、コードが参照としてこのアセンブリを使用する多くのプロジェクトを持っていますference。 私はこれらのソリューションをマージする最良の方法が何であるか知りたいと思います。 文字列に応じてenum型を返すメソッドについては考えていますが、すべての場合に返される型を実装する方法や使用する方法がわかりません。 「
私ができる:
----------編集----------
私がしているしているいくつかの他の制約をアドバイスしてくださいヌル入力可能な型を使用するか、列挙型の値を変更する(私は名前を変更することができる) 場合によっては、それをファイルから読み書きするシリアライザがあるためです。 、
public static Type LETTERS(string letters_type)
{
if (letters_type == "type_a")
return typeof(LETTERS);
return typeof(LETTERS_B);
}
しかし、私は、私が使用する必要があります列挙型のどのバージョンを知って実行時には、各々の場合 に列挙型としてキャストとタイプを使用する方法がわからない:
は、私はこのような方法を使って考えますそのような方法が助けになる理由です。
おかげ
「マージされた」resoultはどのように見えますか? – ntohl
これを処理するための超簡単かつ/または標準的な方法はわかりません。 2つの競合する列挙型を保持し、それらを名前空間で区切り、完全修飾名を使用するようにすべての参照を更新するか、結合し、必要に応じて手動で参照を更新して、マージした列挙を正しく使用できます。私はこれらのメソッドのいずれかを、標準のC#enumではない "パラメータ化された多相列挙型"を作成しようとする前にお勧めします。 – SlimsGhost
多くのおかげで、異なる名前空間がオプションになる可能性があります。 私の質問を編集し、私が持っているいくつかの制約を追加しました –