0

重複の可能性:
.NETクラスライブラリで「抽象」列挙型を作成するにはどうすればよいですか?

それで、これが私のプロジェクトです。

コマンドと呼ばれる列挙型を持つネットワークフレームワークがあります。これは基本的に、入ったばかりのパケットがCONNECT、CHAT、JOINなどであるかどうかをシステムに通知します。将来のステップとして、プラグインが追加のコマンドタイプを提供できるこの「フレームワーク」を使用できるようにします。後続のプラグインで既存の列挙型に値を追加できないことはわかっているので、上記で実行したいことを実行する適切な方法は何でしょうか。クラス?コマンド用の整数フィールドと、CONNECT = 1、JOIN = 2などの一連の定数フィールド?

4

2 に答える 2

1

pluginこれらの現在不明なパケットを自分で処理しようとするのではなく、プラグイン自体にメッセージの処理を委譲できるように、おそらくメインのメッセージ タイプの 1 つを として持つ必要があります。さらに、各プラグイン メッセージには、それを処理するプラグインを指定する識別子を含める必要があります。

一般に、プラグイン システムは可能な限りモジュール化する必要があるため、コードがどのように干渉するかを心配する必要はありません。

于 2012-12-07T03:52:02.423 に答える
0

定数を持つクラスを作成するのが最善の方法だと思います

public class Commands
{
    public const int CONNECT = 1;
    public const int CHAT = 2;
    public const int JOIN = 3;
}

ユーザーが新しいコマンド タイプを追加する場合、このクラスをオーバーライドする必要があります。

public class PluginCommands: Commands
{
    public const int AddBuddy = 4;
    public const int Disconnect = 5;
}
于 2012-12-07T03:51:57.720 に答える