namespace MessageService.Domain.Tools { public static class StreamKeyBuilder { public static string Private(Guid a, Guid b) { // Guid 类型使用 Guid.Empty 来判断是否为无效/初始化的 ID if (a == Guid.Empty || b == Guid.Empty) throw new ArgumentException("IDs cannot be empty."); // Guid 实现了 IComparable,使用 CompareTo 来保持生成 Key 的顺序一致性 return $"p:{(a.CompareTo(b) < 0 ? $"{a}_{b}" : $"{b}_{a}")}"; } public static string Group(Guid groupId) { if (groupId == Guid.Empty) throw new ArgumentException("Group ID cannot be empty."); return $"g:{groupId}"; } } }