本文整理汇总了C#中MutableString.SwitchToCharacters方法的典型用法代码示例。如果您正苦于以下问题:C# MutableString.SwitchToCharacters方法的具体用法?C# MutableString.SwitchToCharacters怎么用?C# MutableString.SwitchToCharacters使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MutableString
的用法示例。
在下文中一共展示了MutableString.SwitchToCharacters方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LastIndexOf
public static object LastIndexOf(MutableString/*!*/ self,
[DefaultProtocol, NotNull]MutableString/*!*/ substring, [DefaultProtocol, DefaultParameterValue(Int32.MaxValue)]int start) {
self.SwitchToCharacters();
int charCount = self.GetCharCount();
start = IListOps.NormalizeIndex(charCount, start);
if (start < 0) {
return null;
}
if (substring.IsEmpty) {
return ScriptingRuntimeHelpers.Int32ToObject((start >= charCount) ? charCount : start);
}
self.RequireCompatibleEncoding(substring);
substring.SwitchToCharacters();
int subCharCount = substring.GetCharCount();
// LastIndexOf has CLR semantics: no characters of the substring are matched beyond start position.
// Hence we need to increase start by the length of the substring - 1.
if (start > charCount - subCharCount) {
start = charCount - 1;
} else {
start += subCharCount - 1;
}
int result = self.LastIndexOf(substring, start);
return (result != -1) ? ScriptingRuntimeHelpers.Int32ToObject(result) : null;
}
示例2: Translate
internal static MutableString/*!*/ Translate(MutableString/*!*/ src, MutableString/*!*/ from, MutableString/*!*/ to,
bool inplace, bool squeeze, out bool anyCharacterMaps) {
Assert.NotNull(src, from, to);
if (from.IsEmpty) {
anyCharacterMaps = false;
return inplace ? src : src.Clone();
}
MutableString dst;
if (inplace) {
dst = src;
} else {
dst = src.CreateInstance().TaintBy(src);
}
// TODO: KCODE
src.RequireCompatibleEncoding(from);
dst.RequireCompatibleEncoding(to);
from.SwitchToCharacters();
to.SwitchToCharacters();
CharacterMap map = CharacterMap.Create(from, to);
if (to.IsEmpty) {
anyCharacterMaps = MutableString.TranslateRemove(src, dst, map);
} else if (squeeze) {
anyCharacterMaps = MutableString.TranslateSqueeze(src, dst, map);
} else {
anyCharacterMaps = MutableString.Translate(src, dst, map);
}
return dst;
}
示例3: Index
public static object Index(MutableString/*!*/ self,
[DefaultProtocol, NotNull]MutableString/*!*/ substring, [DefaultProtocol, Optional]int start) {
self.SwitchToCharacters();
if (!NormalizeStart(self.GetCharCount(), ref start)) {
return null;
}
self.RequireCompatibleEncoding(substring);
substring.SwitchToCharacters();
int result = self.IndexOf(substring, start);
return (result != -1) ? ScriptingRuntimeHelpers.Int32ToObject(result) : null;
}