本文整理汇总了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));
}
示例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
}