私は自分の名前空間の中にあるプロジェクトのすべてのタイプを保持するC#のソースファイルを持っています。例:タイプが既にC#の別のソースファイルで宣言されているかどうかを知るには?
#define HELPER_FILE
using System;
namespace Helper
{
public struct NormalBalance : INormalType
{
public int Position { get; set; }
public float Normal { get; set; }
}
...
}
次に、他のファイルでこれらのタイプを使用します。私はチームの他の人にこれらのファイルの一部を配布したいと思いますが、すべてのファイルやタイプは必要ありませんが、いくつかのデータ構造は共有されています。例えば
:
using System;
namespace DataPump
{
public class Pumper
{
private Helper.NormalBalance[] norm;
...
}
...
}
しかし、このコードはHelper.NormalBalanceタイプを含む以前のファイルに依存します。私は、型を宣言するファイルで#defineディレクティブを使うことができるC++のような、他のものの存在を知るようにファイルを同期させるメソッドを必要とします。クライアントファイルにトークンが定義されていない場合、次のように条件付きのタイプをコンパイルします:
(C++のコードは以下の)
class Pumper
{
private:
#ifndef HELPER_FILE
struct NormalBalance
{
int Position;
float Normal;
}
NormalBalance[] norm;
#else
Helper.NormalBalance[] norm;
#endif
...
}
...
}
を残念ながら、C#での#defineディレクティブのスコープは、それが宣言されたファイルのみです。 C#でこれを行う方法はありますか?私は、ファイルがプロジェクトに含まれているかどうか、または少なくとも型が以前に定義されているかどうかを知る必要があります。