0

我正在使用 Mono 创建一个跨平台应用程序,它可以使用不同类型的连接类型(蓝牙、WiFi 等),但在任何给定时间它总是只有一个套接字连接。

使用什么连接类型在编译时决定

我希望我的应用程序的所有需要​​它的不同页面都可以访问这个套接字连接,然后在一个接口下方,它们将具有始终需要 android.bluetooth.BluetoothSocket 的特定实现(例如 Android 蓝牙实现),所以我将其转换为到那个。

所以我的 Views 和 ViewModels 不知道它是什么类型的套接字

我这样做的原因是能够将它全部隐藏在一个界面后面并且只有一个属性

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 回答