10 writes to _string
System.Private.Uri (10)
System\Uri.cs (5)
2139_string = _string.Substring(0, idx); 2157_string = _string.Substring(0, idx); 2206_string = newHost; 3478_string = string.Concat(vsb.AsSpan(), original); 3520_string = vsb.ToString();
System\UriExt.cs (5)
29_string = uri ?? string.Empty; 72_string = vsb.ToString(); 78_string = null!; // make it be invalid Uri 639_string = uri; 987_string = otherUri._string;
92 references to _string
System.Private.Uri (92)
System\Uri.cs (75)
175Debug.Assert(offset.End >= offset.Fragment && offset.End <= _string.Length); 195Debug.Assert(Ascii.IsValid(_string)); 346char ch = _string[_info.Offset.Path]; 555[MemberNotNull(nameof(_string))] 1025? _string 1026: (IsDosPath && _string[start] is '/' or '\\') 1027? _string.Substring(start + 1, _info.Offset.Query - start - 1) 1028: _string.Substring(start, _info.Offset.Query - start); 1058if (_string[start] is '/' or '\\') 1067ReadOnlySpan<char> path = _string.AsSpan(start, _info.Offset.Query - start); 1183public string OriginalString => _originalUnicodeString ?? _string; 1587return _string; 1609result = _string; 1646(IsDosPath && _string[_info.Offset.Path + SecuredPathIndex - 1] == '|')) // A rare case of c|\ 1656result = _string.AsSpan(_info.Offset.Scheme, _info.Offset.End - _info.Offset.Scheme); 1777if (string.Equals(_string, other._string, IsUncOrDosPath ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal)) 1799string str = other._string; 1808if (_string[i1] != str[i2]) 1821if (i1 < _info.Offset.Path && _string[i1] != ':') 2002Debug.Assert(ReferenceEquals(_string, OriginalString)); 2009ReadOnlySpan<char> str = _string; 2139_string = _string.Substring(0, idx); 2157_string = _string.Substring(0, idx); 2305Debug.Assert(_string.AsSpan(0, idx).SequenceEqual(OriginalString.AsSpan(0, idx))); 2321idx = _string.IndexOf('@') + 1; 2435string host = CreateHostStringHelper(_string, _info.Offset.Host, _info.Offset.Path, ref flags, _info); 2488host[i] != _string[_info.Offset.Host + i]) 2593if ((_info.Offset.Host + i) >= _info.Offset.End || host[i] != _string[_info.Offset.Host + i]) 2665else if (IsDosPath && _string[_info.Offset.Path + SecuredPathIndex - 1] == '|') 2700else if (IsDosPath && _string[_info.Offset.Path + SecuredPathIndex - 1] == '|') 2723string str = _string; 2740string str = _string; 2987return _string.Substring(_info.Offset.Scheme, _info.Offset.Path - _info.Offset.Scheme); 2990_string.AsSpan(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme), 2991_string.AsSpan(_info.Offset.Host, _info.Offset.Path - _info.Offset.Host)); 3000return _string.Substring(_info.Offset.Host, _info.Offset.Path - _info.Offset.Host); 3002return string.Concat(_string.AsSpan(_info.Offset.Host, _info.Offset.Path - _info.Offset.Host), 3007if (_info.Offset.Scheme == 0 && _info.Offset.End == _string.Length) 3008return _string; 3010return _string.Substring(_info.Offset.Scheme, _info.Offset.End - _info.Offset.Scheme); 3017_string.AsSpan(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme), 3018_string.AsSpan(_info.Offset.Host, _info.Offset.Fragment - _info.Offset.Host)); 3020if (_info.Offset.Scheme == 0 && _info.Offset.Fragment == _string.Length) 3021return _string; 3023return _string.Substring(_info.Offset.Scheme, _info.Offset.Fragment - _info.Offset.Scheme); 3027return _string.Substring(_info.Offset.Scheme, _info.Offset.Path - _info.Offset.Scheme); 3031if (_info.Offset.Scheme == 0 && _info.Offset.Fragment == _string.Length) 3032return _string; 3034return _string.Substring(_info.Offset.Scheme, _info.Offset.Fragment - _info.Offset.Scheme); 3040return _string.Substring(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme); 3050while (_string[--idx] != ':') 3053return (idx - _info.Offset.Host == 0) ? string.Empty : _string.Substring(_info.Offset.Host, 3060_info.Offset.End > _info.Offset.Path && _string[_info.Offset.Path] == '/') 3069return _string.Substring(delimiterAwareIdx, _info.Offset.Query - delimiterAwareIdx); 3081return _string.Substring(delimiterAwareIdx, _info.Offset.Fragment - delimiterAwareIdx); 3093return _string.Substring(delimiterAwareIdx, _info.Offset.End - delimiterAwareIdx); 3097_string.Substring(_info.Offset.User, _info.Offset.Path - _info.Offset.User); 3103return string.Concat(_string.AsSpan(_info.Offset.User, _info.Offset.Path - _info.Offset.User), 3107return _string.Substring(_info.Offset.Path, _info.Offset.Fragment - _info.Offset.Path); 3113_string.AsSpan(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme), 3114_string.AsSpan(_info.Offset.Host, _info.Offset.End - _info.Offset.Host)); 3116if (_info.Offset.Scheme == 0 && _info.Offset.End == _string.Length) 3117return _string; 3119return _string.Substring(_info.Offset.Scheme, _info.Offset.End - _info.Offset.Scheme); 3122return _string.Substring(_info.Offset.Path, _info.Offset.End - _info.Offset.Path); 3138return _string.Substring(_info.Offset.User, delimiterAwareIdx - _info.Offset.User); 3172string inputStr = _string; 3432/// <summary>Recreates the <see cref="_string"/> by normalizing the Path, Query and Fragment for non-ASCII inputs.</summary> 3469Debug.Assert(!ReferenceEquals(_string, OriginalString)); 3471vsb.Append(_string); 4223dest.Append(_string.AsSpan(_info.Offset.Path, _info.Offset.Query - _info.Offset.Path)); 4239ReadOnlySpan<char> str = _string; 4255dest.Append(_string.AsSpan(_info.Offset.Path, _info.Offset.Query - _info.Offset.Path)); 4276dest.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 98((_string.Length >= 2 && (_string[0] != '\\' || _string[1] != '\\')) 387string str = _string; 790if (ReferenceEquals(newUriString, baseUri._string)) 800return UriHelper.EscapeString(_string, checkExistingEscaped: true, UriHelper.UnreservedReserved); 804return UnescapeDataString(_string); 808if (_string.Length == 0) 812UriHelper.UnescapeString(_string, ref vsb, c_DummyChar, c_DummyChar, c_DummyChar, UnescapeMode.EscapeUnescape, null, false); 943[MemberNotNull(nameof(_string))] 971while (otherUri._string[portIndex] != ':' && portIndex > otherUri._info.Offset.Host) 975if (otherUri._string[portIndex] != ':') 987_string = otherUri._string;