Ejemplo n.º 1
0
        /// <summary>
        /// 将 <see cref="ComplexMessage"/> 实例解构为 13 个不同的 <see cref="MessageElement"/> 实例。
        /// 如果要求的 <see cref="MessageElement"/> 实例数量大于 <paramref name="message"/> 的元素数量,则超出部分的值为 <see langword="null"/>。
        /// </summary>
        /// <exception cref="ArgumentNullException"><paramref name="message"/> 为 <see langword="null"/>。</exception>
        public static void Deconstruct(
            this ComplexMessage message,
            out MessageElement element0,
            out MessageElement element1,
            out MessageElement element2,
            out MessageElement element3,
            out MessageElement element4,
            out MessageElement element5,
            out MessageElement element6,
            out MessageElement element7,
            out MessageElement element8,
            out MessageElement element9,
            out MessageElement element10,
            out MessageElement element11,
            out MessageElement element12)
        {
            if (message is null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            element0  = message.ElementAtOrDefault(0);
            element1  = message.ElementAtOrDefault(1);
            element2  = message.ElementAtOrDefault(2);
            element3  = message.ElementAtOrDefault(3);
            element4  = message.ElementAtOrDefault(4);
            element5  = message.ElementAtOrDefault(5);
            element6  = message.ElementAtOrDefault(6);
            element7  = message.ElementAtOrDefault(7);
            element8  = message.ElementAtOrDefault(8);
            element9  = message.ElementAtOrDefault(9);
            element10 = message.ElementAtOrDefault(10);
            element11 = message.ElementAtOrDefault(11);
            element12 = message.ElementAtOrDefault(12);
        }
        /// <summary>
        /// 将 <see cref="Message"/> 实例解析为 <see cref="ComplexMessage"/> 实例。
        /// </summary>
        /// <param name="message">一个 <see cref="Message"/>实例,该 <see cref="Message"/> 实例的 <see cref="Message.Content"/> 属性为要解析的 <see cref="ComplexMessage"/> 实例的字符串表示形式。</param>
        /// <param name="useEmoji">如果要在返回的 <see cref="ComplexMessage"/> 实例中包含 <see cref="Emoji"/> 实例,则为 <see langword="true"/>;否则为 <see langword="false"/>。</param>
        /// <returns>与 <see cref="Message.Content"/> 等效的 <see cref="ComplexMessage"/> 实例。</returns>
        public static ComplexMessage Parse(this Message message, bool useEmoji = false)
        {
            if (message is null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            return(ComplexMessage.Parse(message.Content, useEmoji));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 将 <see cref="ComplexMessage"/> 实例解构为 1 个不同的 <see cref="MessageElement"/> 实例。
        /// 如果要求的 <see cref="MessageElement"/> 实例数量大于 <paramref name="message"/> 的元素数量,则超出部分的值为 <see langword="null"/>。
        /// </summary>
        /// <exception cref="ArgumentNullException"><paramref name="message"/> 为 <see langword="null"/>。</exception>
        public static void Deconstruct(
            this ComplexMessage message,
            out MessageElement element0)
        {
            if (message is null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            element0 = message.ElementAtOrDefault(0);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 将 <see cref="ComplexMessage"/> 实例解构为 5 个不同的 <see cref="MessageElement"/> 实例。
        /// 如果要求的 <see cref="MessageElement"/> 实例数量大于 <paramref name="message"/> 的元素数量,则超出部分的值为 <see langword="null"/>。
        /// </summary>
        /// <exception cref="ArgumentNullException"><paramref name="message"/> 为 <see langword="null"/>。</exception>
        public static void Deconstruct(
            this ComplexMessage message,
            out MessageElement element0,
            out MessageElement element1,
            out MessageElement element2,
            out MessageElement element3,
            out MessageElement element4)
        {
            if (message is null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            element0 = message.ElementAtOrDefault(0);
            element1 = message.ElementAtOrDefault(1);
            element2 = message.ElementAtOrDefault(2);
            element3 = message.ElementAtOrDefault(3);
            element4 = message.ElementAtOrDefault(4);
        }