using Milimoe.FunGame.Core.Library.Constant; namespace Milimoe.FunGame.Core.Library.Common.Network { [Serializable] public readonly struct SocketObject { public SocketMessageType SocketType { get; } = SocketMessageType.Unknown; public Guid Token { get; } = Guid.Empty; public object[] Parameters { get; } = Array.Empty(); public int Length { get; } = 0; private JsonObject Json { get; } public SocketObject(JsonObject json) { Json = json; SocketType = Json.MessageType; Token = Json.Token; Parameters = Json.Parameters; Length = Parameters.Length; } public SocketObject() { Json = new JsonObject(SocketMessageType.Unknown, Guid.Empty, Array.Empty()); SocketType = Json.MessageType; Token = Json.Token; Parameters = Json.Parameters; Length = Parameters.Length; } /// /// 从参数列表中获取指定类型的参数 /// /// 类型 /// 索引 /// 类型的参数 /// 索引超过数组上限 public T? GetParam(int index) => Json.GetObject(index); } }