13 writes to _string
System.Private.Uri (13)
System\Uri.cs (8)
2136_string = _string.Substring(0, idx); 2154_string = _string.Substring(0, idx); 2203_string = newHost; 3256_string = 3280_string = string.Concat(_string, _originalUnicodeString.AsSpan(origIdx)); 3340_string += EscapeUnescapeIri(_originalUnicodeString, offset, origIdx, isQuery: false); 3467_string += EscapeUnescapeIri(_originalUnicodeString, offset, origIdx, isQuery: true); 3517_string += EscapeUnescapeIri(_originalUnicodeString, offset, origIdx, isQuery: false);
System\UriExt.cs (5)
29_string = uri ?? string.Empty; 70_string = EscapeUnescapeIri(_originalUnicodeString, 0, _originalUnicodeString.Length, isQuery: false); 76_string = null!; // make it be invalid Uri 648_string = uri; 996_string = otherUri._string;
112 references to _string
System.Private.Uri (112)
System\Uri.cs (95)
173Debug.Assert(offset.End >= offset.Fragment && offset.End <= _string.Length); 193Debug.Assert(Ascii.IsValid(_string)); 344char ch = _string[_info.Offset.Path]; 553[MemberNotNull(nameof(_string))] 1022? _string 1023: (IsDosPath && _string[start] is '/' or '\\') 1024? _string.Substring(start + 1, _info.Offset.Query - start - 1) 1025: _string.Substring(start, _info.Offset.Query - start); 1055if (_string[start] is '/' or '\\') 1064ReadOnlySpan<char> path = _string.AsSpan(start, _info.Offset.Query - start); 1180public string OriginalString => _originalUnicodeString ?? _string; 1584return _string; 1606result = _string; 1643(IsDosPath && _string[_info.Offset.Path + SecuredPathIndex - 1] == '|')) // A rare case of c|\ 1653result = _string.AsSpan(_info.Offset.Scheme, _info.Offset.End - _info.Offset.Scheme); 1774if (string.Equals(_string, other._string, IsUncOrDosPath ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal)) 1796string str = other._string; 1805if (_string[i1] != str[i2]) 1818if (i1 < _info.Offset.Path && _string[i1] != ':') 1999Debug.Assert(ReferenceEquals(_string, OriginalString)); 2006ReadOnlySpan<char> str = _string; 2136_string = _string.Substring(0, idx); 2154_string = _string.Substring(0, idx); 2302Debug.Assert(_string.AsSpan(0, idx).SequenceEqual(OriginalString.AsSpan(0, idx))); 2318idx = _string.IndexOf('@') + 1; 2432string host = CreateHostStringHelper(_string, _info.Offset.Host, _info.Offset.Path, ref flags, _info); 2485host[i] != _string[_info.Offset.Host + i]) 2590if ((_info.Offset.Host + i) >= _info.Offset.End || host[i] != _string[_info.Offset.Host + i]) 2662else if (IsDosPath && _string[_info.Offset.Path + SecuredPathIndex - 1] == '|') 2697else if (IsDosPath && _string[_info.Offset.Path + SecuredPathIndex - 1] == '|') 2720string str = _string; 2737string str = _string; 2984return _string.Substring(_info.Offset.Scheme, _info.Offset.Path - _info.Offset.Scheme); 2987_string.AsSpan(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme), 2988_string.AsSpan(_info.Offset.Host, _info.Offset.Path - _info.Offset.Host)); 2997return _string.Substring(_info.Offset.Host, _info.Offset.Path - _info.Offset.Host); 2999return string.Concat(_string.AsSpan(_info.Offset.Host, _info.Offset.Path - _info.Offset.Host), 3004if (_info.Offset.Scheme == 0 && _info.Offset.End == _string.Length) 3005return _string; 3007return _string.Substring(_info.Offset.Scheme, _info.Offset.End - _info.Offset.Scheme); 3014_string.AsSpan(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme), 3015_string.AsSpan(_info.Offset.Host, _info.Offset.Fragment - _info.Offset.Host)); 3017if (_info.Offset.Scheme == 0 && _info.Offset.Fragment == _string.Length) 3018return _string; 3020return _string.Substring(_info.Offset.Scheme, _info.Offset.Fragment - _info.Offset.Scheme); 3024return _string.Substring(_info.Offset.Scheme, _info.Offset.Path - _info.Offset.Scheme); 3028if (_info.Offset.Scheme == 0 && _info.Offset.Fragment == _string.Length) 3029return _string; 3031return _string.Substring(_info.Offset.Scheme, _info.Offset.Fragment - _info.Offset.Scheme); 3037return _string.Substring(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme); 3047while (_string[--idx] != ':') 3050return (idx - _info.Offset.Host == 0) ? string.Empty : _string.Substring(_info.Offset.Host, 3057_info.Offset.End > _info.Offset.Path && _string[_info.Offset.Path] == '/') 3066return _string.Substring(delimiterAwareIdx, _info.Offset.Query - delimiterAwareIdx); 3078return _string.Substring(delimiterAwareIdx, _info.Offset.Fragment - delimiterAwareIdx); 3090return _string.Substring(delimiterAwareIdx, _info.Offset.End - delimiterAwareIdx); 3094_string.Substring(_info.Offset.User, _info.Offset.Path - _info.Offset.User); 3100return string.Concat(_string.AsSpan(_info.Offset.User, _info.Offset.Path - _info.Offset.User), 3104return _string.Substring(_info.Offset.Path, _info.Offset.Fragment - _info.Offset.Path); 3110_string.AsSpan(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme), 3111_string.AsSpan(_info.Offset.Host, _info.Offset.End - _info.Offset.Host)); 3113if (_info.Offset.Scheme == 0 && _info.Offset.End == _string.Length) 3114return _string; 3116return _string.Substring(_info.Offset.Scheme, _info.Offset.End - _info.Offset.Scheme); 3119return _string.Substring(_info.Offset.Path, _info.Offset.End - _info.Offset.Path); 3135return _string.Substring(_info.Offset.User, delimiterAwareIdx - _info.Offset.User); 3175int length = _string.Length; 3181GetLengthWithoutTrailingSpaces(_string, ref length, idx); 3189ReadOnlySpan<char> str = _string.AsSpan(idx); 3219result = CheckCanonical(_string.AsSpan(idx, _info.Offset.Host - idx), '@', out _); 3262_info.Offset.User = _string.Length; 3263_info.Offset.Host = _string.Length; 3267Debug.Assert(!ReferenceEquals(_string, OriginalString)); 3270_info.Offset.Path = _string.Length; 3280_string = string.Concat(_string, _originalUnicodeString.AsSpan(origIdx)); 3283string str = _string; 3342length = _string.Length; 3344if (_string == _originalUnicodeString) 3346GetLengthWithoutTrailingSpaces(_string, ref length, idx); 3355result = CheckCanonical(_string.AsSpan(idx, length - idx), delim, out int checkedChars); 3370&& (_info.Offset.Path == length || _string[_info.Offset.Path] is not ('/' or '\\'))) 3469length = _string.Length; 3471if (_string == _originalUnicodeString) 3473GetLengthWithoutTrailingSpaces(_string, ref length, idx); 3480if (idx < length && _string[idx] == '?') 3483result = CheckCanonical(_string.AsSpan(idx, length - idx), (syntaxFlags & (UriSyntaxFlags.MayHaveFragment)) != 0 ? '#' : c_EOL, out int charsChecked); 3519length = _string.Length; 3521GetLengthWithoutTrailingSpaces(_string, ref length, idx); 3527if (idx < length && _string[idx] == '#') 3531result = CheckCanonical(_string.AsSpan(idx, length - idx), c_EOL, out int checkedChars); 4255dest.Append(_string.AsSpan(_info.Offset.Path, _info.Offset.Query - _info.Offset.Path)); 4271ReadOnlySpan<char> str = _string; 4287dest.Append(_string.AsSpan(_info.Offset.Path, _info.Offset.Query - _info.Offset.Path)); 4308dest.Append(_string.AsSpan(_info.Offset.Path, _info.Offset.Query - _info.Offset.Path));
System\UriExt.cs (17)
19[MemberNotNull(nameof(_string))] 39ParsingError err = ParseScheme(_string, ref _flags, ref _syntax!); 53if (IriParsing && CheckForUnicodeOrEscapedUnreserved(_string)) 57_originalUnicodeString = _string; // original string location changed 96((_string.Length >= 2 && (_string[0] != '\\' || _string[1] != '\\')) 385string str = _string; 799if (ReferenceEquals(newUriString, baseUri._string)) 809return UriHelper.EscapeString(_string, checkExistingEscaped: true, UriHelper.UnreservedReserved); 813return UnescapeDataString(_string); 817if (_string.Length == 0) 821UriHelper.UnescapeString(_string, ref vsb, c_DummyChar, c_DummyChar, c_DummyChar, UnescapeMode.EscapeUnescape, null, false); 952[MemberNotNull(nameof(_string))] 980while (otherUri._string[portIndex] != ':' && portIndex > otherUri._info.Offset.Host) 984if (otherUri._string[portIndex] != ':') 996_string = otherUri._string;