当前位置: 首页>>代码示例>>C#>>正文


C# ByteString.IndexOfNot方法代码示例

本文整理汇总了C#中ByteString.IndexOfNot方法的典型用法代码示例。如果您正苦于以下问题:C# ByteString.IndexOfNot方法的具体用法?C# ByteString.IndexOfNot怎么用?C# ByteString.IndexOfNot使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ByteString的用法示例。


在下文中一共展示了ByteString.IndexOfNot方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: TestIndexOfNot

        public void TestIndexOfNot()
        {
            ByteString str;

              str = new ByteString("aaabbb");

              Assert.AreEqual(3, str.IndexOfNot('a'));
              Assert.AreEqual(3, str.IndexOfNot(0x61));
              Assert.AreEqual(3, str.IndexOfNot('a', 3));
              Assert.AreEqual(3, str.IndexOfNot(0x61, 3));
              Assert.AreEqual(5, str.IndexOfNot('a', 5));
              Assert.AreEqual(5, str.IndexOfNot(0x61, 5));
              Assert.AreEqual(0, str.IndexOfNot('b'));
              Assert.AreEqual(0, str.IndexOfNot(0x62));
              Assert.AreEqual(-1, str.IndexOfNot('b', 3));
              Assert.AreEqual(-1, str.IndexOfNot(0x62, 3));
              Assert.AreEqual(-1, str.IndexOfNot('b', 5));
              Assert.AreEqual(-1, str.IndexOfNot(0x62, 5));
        }
开发者ID:pengyancai,项目名称:cs-util,代码行数:19,代码来源:ByteString.cs

示例2: ParseData

        protected ImapData[] ParseData(ByteString line, int offset, ref IParsingContext context)
        {
            var index = offset;
              var c = context as ParsingContext;

              if (c == null) {
            context = c = new ParsingContext();
              }
              else {
            if (line.Length - index == 2/*CRLF*/) {
              if (c.ParenthesesClosed) {
            // end of data
            context = null;
            return c.GetParsed();
              }
              else {
            throw new ImapMalformedDataException("unclosed parenthesis");
              }
            }
            else if (line[index] == Octets.SP) {
              index++;
            }
              }

              var bytes = line.ByteArray;

              for (;;) {
            if (bytes[index] == Octets.SP)
              // skip SP
              index = line.IndexOfNot(Octets.SP, index);

            switch (bytes[index]) {
              case ImapOctets.DQuote: {
            // quoted
            c.AddData(ImapData.CreateTextData(ParseQuotedString(line, ref index)));
            break;
              }

              case ImapOctets.OpenParen: {
            // parenthesized begin
            c.OpenParenthesis();
            index++; // '('
            break;
              }

              case ImapOctets.CloseParen: {
            // parenthesized end
            c.CloseParenthesis();
            index++; // ')'
            break;
              }

              case ImapOctets.OpenBrace:
              case ImapOctets.Tilde: {
            // literal/literal8
            ImapData parsed;

            var isLiteral = ParseLiteral((bytes[index] == ImapOctets.Tilde), line, ref index, out parsed);

            c.AddData(parsed);

            if (isLiteral)
              return null; // incomplete
            else
              break;
              }

              default: {
            // non-quoted
            var text = ParseNonQuotedString(line, ref index);

            if (nil.EqualsIgnoreCase(text))
              c.AddData(ImapData.CreateNilData());
            else
              c.AddData(ImapData.CreateTextData(text));

            break;
              }
            }

            if (line.Length - index == 2/*CRLF*/) {
              if (c.ParenthesesClosed) {
            // end of data
            context = null;
            return c.GetParsed();
              }
              else {
            return null; // incomplete
              }
            }
            else {
              if (bytes[index] == Octets.SP)
            index++;
            }
              } // for
        }
开发者ID:pengyancai,项目名称:cs-util,代码行数:96,代码来源:ImapReceiver.cs


注:本文中的ByteString.IndexOfNot方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。