Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ReadRuneFromString()

static int System.Text.Rune.ReadRuneFromString ( string input,
int index )
inlinestaticprivate

Definition at line 459 of file Rune.cs.

460 {
461 if (input == null)
462 {
463 ThrowHelper.ThrowArgumentNullException(ExceptionArgument.input);
464 }
465 if ((uint)index >= (uint)input.Length)
466 {
467 ThrowHelper.ThrowArgumentOutOfRange_IndexException();
468 }
469 uint num = input[index];
470 if (UnicodeUtility.IsSurrogateCodePoint(num))
471 {
472 if (!UnicodeUtility.IsHighSurrogateCodePoint(num))
473 {
474 return -1;
475 }
476 index++;
477 if ((uint)index >= (uint)input.Length)
478 {
479 return -1;
480 }
481 uint num2 = input[index];
482 if (!UnicodeUtility.IsLowSurrogateCodePoint(num2))
483 {
484 return -1;
485 }
486 num = UnicodeUtility.GetScalarFromUtf16SurrogatePair(num, num2);
487 }
488 return (int)num;
489 }

References System.Text.UnicodeUtility.GetScalarFromUtf16SurrogatePair(), System.index, System.input, System.Text.UnicodeUtility.IsHighSurrogateCodePoint(), System.Text.UnicodeUtility.IsLowSurrogateCodePoint(), System.Text.UnicodeUtility.IsSurrogateCodePoint(), System.ThrowHelper.ThrowArgumentNullException(), and System.ThrowHelper.ThrowArgumentOutOfRange_IndexException().

Referenced by System.Text.Rune.GetRuneAt(), and System.Text.Rune.TryGetRuneAt().