我想实现一个用C#编写的“框架”,以便与Windows窗体应用程序一起使用。需要帮助设计实现tcp报文代码的类
该框架旨在实现一些基本的方法,允许通过TCP/IP套接字发送和接收字节数组,并将这些字节数组转换为特定的类,这些类实现不同的TCP/IP报文,包括报头数据和净荷数据。
我想过使用接口,一些抽象基类和基于它们的不同协议的独特实现。
我已经设计了接口,但限制了我无法在该接口中使用静态成员或构造函数declarad。
这是我的接口:
public interface ITcpTelegramm<T> where T : struct
基于此,我宣布
using IUInt16TcpTelegramm = ITcpTelegramm<UInt16>;
public abstract class TcpTelegramm : IUInt16TcpTelegramm
在我实现这个接口作为抽象方法
public abstract IUInt16TcpTelegramm Analyse(byte[] daten);
所以它继承的每个类TcpTelegramm必须声明工具这些方法。
但因为接口不能包含静态方法和静态方法不能是抽象的我不能强迫继承的类来实现分析为静态:
public static IUInt16TcpTelegramm Analyse(byte[] daten)
{
/* some code that analyses the byte array and creates an object
that represents the TCP/IP telegram object in the array */
}
所以现在我被困了一点。 我放弃使用静态方法或使用抽象基类。
你在说电报信使吗? https://core.telegram.org/api –
为什么'Analyze()'必须是静态的?你的_question_是什么?你已经知道接口不能包含静态成员,所以你肯定不会问怎么做。那么你在问什么?你有什么问题需要具体解决,以避免面对许多不同的可能答案? –
'Analyze()'方法实现工厂模式。所以我决定,它必须是静态的。 :-) 不,不是电报信使。它应该是我的应用程序的测试应用程序,它使用不同的专有TCP/IP通信协议。 –