8 writes to _string
System.Private.Uri (8)
System\Uri.cs (5)
2125_string = _string.Substring(0, idx); 2143_string = _string.Substring(0, idx); 2192_string = newHost; 3464_string = string.Concat(vsb.AsSpan(), original); 3506_string = vsb.ToString();
System\UriExt.cs (3)
42_string = uri ?? string.Empty; 163_string = EscapeUnescapeIri(default, _originalUnicodeString, isQuery: false); 953_string = otherUri._string;
93 references to _string
System.Private.Uri (93)
System\Uri.cs (75)
182Debug.Assert(offset.End >= offset.Fragment && offset.End <= _string.Length); 202Debug.Assert(Ascii.IsValid(_string)); 353char ch = _string[_info.Offset.Path]; 554[MemberNotNull(nameof(_string))] 1011? _string 1012: (IsDosPath && _string[start] is '/' or '\\') 1013? _string.Substring(start + 1, _info.Offset.Query - start - 1) 1014: _string.Substring(start, _info.Offset.Query - start); 1044if (_string[start] is '/' or '\\') 1053ReadOnlySpan<char> path = _string.AsSpan(start, _info.Offset.Query - start); 1169public string OriginalString => _originalUnicodeString ?? _string; 1573return _string; 1595result = _string; 1632(IsDosPath && _string[_info.Offset.Path + SecuredPathIndex - 1] == '|')) // A rare case of c|\ 1642result = _string.AsSpan(_info.Offset.Scheme, _info.Offset.End - _info.Offset.Scheme); 1763if (string.Equals(_string, other._string, IsUncOrDosPath ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal)) 1785string str = other._string; 1794if (_string[i1] != str[i2]) 1807if (i1 < _info.Offset.Path && _string[i1] != ':') 1988Debug.Assert(ReferenceEquals(_string, OriginalString)); 1995ReadOnlySpan<char> str = _string; 2125_string = _string.Substring(0, idx); 2143_string = _string.Substring(0, idx); 2291Debug.Assert(_string.AsSpan(0, idx).SequenceEqual(OriginalString.AsSpan(0, idx))); 2307idx = _string.IndexOf('@') + 1; 2421string host = CreateHostStringHelper(_string, _info.Offset.Host, _info.Offset.Path, ref flags, _info); 2474host[i] != _string[_info.Offset.Host + i]) 2579if ((_info.Offset.Host + i) >= _info.Offset.End || host[i] != _string[_info.Offset.Host + i]) 2651else if (IsDosPath && _string[_info.Offset.Path + SecuredPathIndex - 1] == '|') 2686else if (IsDosPath && _string[_info.Offset.Path + SecuredPathIndex - 1] == '|') 2709string str = _string; 2726string str = _string; 2973return _string.Substring(_info.Offset.Scheme, _info.Offset.Path - _info.Offset.Scheme); 2976_string.AsSpan(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme), 2977_string.AsSpan(_info.Offset.Host, _info.Offset.Path - _info.Offset.Host)); 2986return _string.Substring(_info.Offset.Host, _info.Offset.Path - _info.Offset.Host); 2988return string.Concat(_string.AsSpan(_info.Offset.Host, _info.Offset.Path - _info.Offset.Host), 2993if (_info.Offset.Scheme == 0 && _info.Offset.End == _string.Length) 2994return _string; 2996return _string.Substring(_info.Offset.Scheme, _info.Offset.End - _info.Offset.Scheme); 3003_string.AsSpan(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme), 3004_string.AsSpan(_info.Offset.Host, _info.Offset.Fragment - _info.Offset.Host)); 3006if (_info.Offset.Scheme == 0 && _info.Offset.Fragment == _string.Length) 3007return _string; 3009return _string.Substring(_info.Offset.Scheme, _info.Offset.Fragment - _info.Offset.Scheme); 3013return _string.Substring(_info.Offset.Scheme, _info.Offset.Path - _info.Offset.Scheme); 3017if (_info.Offset.Scheme == 0 && _info.Offset.Fragment == _string.Length) 3018return _string; 3020return _string.Substring(_info.Offset.Scheme, _info.Offset.Fragment - _info.Offset.Scheme); 3026return _string.Substring(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme); 3036while (_string[--idx] != ':') 3039return (idx - _info.Offset.Host == 0) ? string.Empty : _string.Substring(_info.Offset.Host, 3046_info.Offset.End > _info.Offset.Path && _string[_info.Offset.Path] == '/') 3055return _string.Substring(delimiterAwareIdx, _info.Offset.Query - delimiterAwareIdx); 3067return _string.Substring(delimiterAwareIdx, _info.Offset.Fragment - delimiterAwareIdx); 3079return _string.Substring(delimiterAwareIdx, _info.Offset.End - delimiterAwareIdx); 3083_string.Substring(_info.Offset.User, _info.Offset.Path - _info.Offset.User); 3089return string.Concat(_string.AsSpan(_info.Offset.User, _info.Offset.Path - _info.Offset.User), 3093return _string.Substring(_info.Offset.Path, _info.Offset.Fragment - _info.Offset.Path); 3099_string.AsSpan(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme), 3100_string.AsSpan(_info.Offset.Host, _info.Offset.End - _info.Offset.Host)); 3102if (_info.Offset.Scheme == 0 && _info.Offset.End == _string.Length) 3103return _string; 3105return _string.Substring(_info.Offset.Scheme, _info.Offset.End - _info.Offset.Scheme); 3108return _string.Substring(_info.Offset.Path, _info.Offset.End - _info.Offset.Path); 3124return _string.Substring(_info.Offset.User, delimiterAwareIdx - _info.Offset.User); 3158string inputStr = _string; 3418/// <summary>Recreates the <see cref="_string"/> by normalizing the Path, Query and Fragment for non-ASCII inputs.</summary> 3455Debug.Assert(!ReferenceEquals(_string, OriginalString)); 3457vsb.Append(_string); 4201dest.Append(_string.AsSpan(_info.Offset.Path, _info.Offset.Query - _info.Offset.Path)); 4217ReadOnlySpan<char> str = _string; 4233dest.Append(_string.AsSpan(_info.Offset.Path, _info.Offset.Query - _info.Offset.Path)); 4254dest.Append(_string.AsSpan(_info.Offset.Path, _info.Offset.Query - _info.Offset.Path));
System\UriExt.cs (18)
17[MemberNotNull(nameof(_string))] 29[MemberNotNull(nameof(_string))] 48ParsingError err = ParseScheme(_string, ref _flags, ref _syntax!); 53if (IriParsing && CheckForUnicodeOrEscapedUnreserved(_string)) 57_originalUnicodeString = _string; // original string location changed 87((_string.Length >= 2 && (_string[0] != '\\' || _string[1] != '\\')) 395string str = _string; 755if (ReferenceEquals(newUriString, baseUri._string)) 765return UriHelper.EscapeString(_string, checkExistingEscaped: true, UriHelper.UnreservedReserved); 769return UnescapeDataString(_string); 773if (_string.Length == 0) 777UriHelper.UnescapeString(_string, ref vsb, c_DummyChar, c_DummyChar, c_DummyChar, UnescapeMode.EscapeUnescape, null, false); 908[MemberNotNull(nameof(_string))] 937while (otherUri._string[portIndex] != ':' && portIndex > otherUri._info.Offset.Host) 941if (otherUri._string[portIndex] != ':') 953_string = otherUri._string;