それは建築家の質問です!
条件付き独立の列挙が2つあります
enum OpenID
{
Google,
Aol
}
enum OAuth
{
Facebook,
Twitter
}
class Provider
{
public OpenID openid;
public OAuth oauth;
}
プロバイダーセットのすべてのメンバーをOpenIDとOAuthに分離することは私にとって非常に論理的です。
If(openid == null)// 1つの動作、If(oauth == null)//別の動作。
ソートする必要のあるプロバイダーインスタンスの配列があります。
方法はありますか
この部門(openidとoauth)をサポートし、
3D列挙を実装せずに、すべてのXメンバーを任意に配置する機能を追加します(例:{Facebook、Google、Aol、Twitter})。
つまり、いずれかの列挙型に値が追加されている場合は、OAuthと言います。enumOAuth {Facebook、Twitter、Instagram}
並べ替えのサポートを実際に追加するために、コード内の別の場所にこの値(Instagram)を明示的に記述する必要はありません。
私が心に留めているアイデア:
- とにかく単一の列挙型がありますが、プレフィックスを追加します。つまり、列挙型X {OpenID_Google、OpenID_Aol、OAuth_Facebook、OAuth_Twitter}です。
ダウンサイズ-列挙型A(またはB)固有のアクションで操作する方法はありません。これで、タイプを示すbool変数ができました。boolIsOpenId; bool IsOAuth;
- XMLリスト{Facebook}は、最初にFacebookをインクルード/処理し、次にOpenIDのメンバー、次にOAuthの残りを含むことを意味します。
雷鳴のようなアイデアはありますか?たぶんコード例でも!