0

さまざまな種類の接続タイプ(Bluetooth、WiFiなど)を使用できるMonoを使用してクロスプラットフォームアプリケーションを作成していますが、常に1つのソケット接続しかありません。

使用する接続タイプはコンパイル時に決定されます

このソケット接続を、それを必要とするアプリケーションのすべての異なるページにアクセスできるようにしたいので、インターフェイスの下に、常にandroid.bluetooth.BluetoothSocketを必要とする特定の実装(たとえば、Android Bluetooth実装)があるので、それをキャストしますそれに。

だから私のViewsとViewModelsはそれがどんな種類のソケットであるかを知りません

これの私の理由は、それをすべて1つのインターフェイスの背後に隠して、プロパティを持つことができるようにするためです。

Public Interface MyContainer
{
    Bool Connected { get; set; }
    Object Socket { get; set; }
}

これは非常に悪いコードでしょうか?プラットフォームと接続タイプに応じてソケットが変更されたときに、インターフェイスの背後にソケットを隠す他の合理的な方法が見つかりません

4

1 に答える 1

1

を使用しないように、クラスをジェネリックにすることができますobject
したがって、たとえば、次を使用します。

public class MyContainer<T>{
    ...

    T Socket { get; set; }
    ...
}

そしてそれを次のように使用します:

MyContainer<BlueToothSocket> container = new MyContainer<BlueToothSocket>();
BlueToothSocket socket = container.Socket;
于 2012-10-17T10:23:04.703 に答える