8 writes to _string
System.Private.Uri (8)
93 references to _string
System.Private.Uri (93)
System\Uri.cs (75)
177Debug.Assert(offset.End >= offset.Fragment && offset.End <= _string.Length);
197Debug.Assert(Ascii.IsValid(_string));
348char ch = _string[_info.Offset.Path];
549[MemberNotNull(nameof(_string))]
1006? _string
1007: (IsDosPath && _string[start] is '/' or '\\')
1008? _string.Substring(start + 1, _info.Offset.Query - start - 1)
1009: _string.Substring(start, _info.Offset.Query - start);
1039if (_string[start] is '/' or '\\')
1048ReadOnlySpan<char> path = _string.AsSpan(start, _info.Offset.Query - start);
1164public string OriginalString => _originalUnicodeString ?? _string;
1568return _string;
1590result = _string;
1627(IsDosPath && _string[_info.Offset.Path + SecuredPathIndex - 1] == '|')) // A rare case of c|\
1637result = _string.AsSpan(_info.Offset.Scheme, _info.Offset.End - _info.Offset.Scheme);
1758if (string.Equals(_string, other._string, IsUncOrDosPath ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal))
1780string str = other._string;
1789if (_string[i1] != str[i2])
1802if (i1 < _info.Offset.Path && _string[i1] != ':')
1983Debug.Assert(ReferenceEquals(_string, OriginalString));
1990ReadOnlySpan<char> str = _string;
2120_string = _string.Substring(0, idx);
2138_string = _string.Substring(0, idx);
2286Debug.Assert(_string.AsSpan(0, idx).SequenceEqual(OriginalString.AsSpan(0, idx)));
2302idx = _string.IndexOf('@') + 1;
2416string host = CreateHostStringHelper(_string, _info.Offset.Host, _info.Offset.Path, ref flags, _info);
2469host[i] != _string[_info.Offset.Host + i])
2574if ((_info.Offset.Host + i) >= _info.Offset.End || host[i] != _string[_info.Offset.Host + i])
2646else if (IsDosPath && _string[_info.Offset.Path + SecuredPathIndex - 1] == '|')
2681else if (IsDosPath && _string[_info.Offset.Path + SecuredPathIndex - 1] == '|')
2704string str = _string;
2721string str = _string;
2968return _string.Substring(_info.Offset.Scheme, _info.Offset.Path - _info.Offset.Scheme);
2971_string.AsSpan(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme),
2972_string.AsSpan(_info.Offset.Host, _info.Offset.Path - _info.Offset.Host));
2981return _string.Substring(_info.Offset.Host, _info.Offset.Path - _info.Offset.Host);
2983return string.Concat(_string.AsSpan(_info.Offset.Host, _info.Offset.Path - _info.Offset.Host),
2988if (_info.Offset.Scheme == 0 && _info.Offset.End == _string.Length)
2989return _string;
2991return _string.Substring(_info.Offset.Scheme, _info.Offset.End - _info.Offset.Scheme);
2998_string.AsSpan(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme),
2999_string.AsSpan(_info.Offset.Host, _info.Offset.Fragment - _info.Offset.Host));
3001if (_info.Offset.Scheme == 0 && _info.Offset.Fragment == _string.Length)
3002return _string;
3004return _string.Substring(_info.Offset.Scheme, _info.Offset.Fragment - _info.Offset.Scheme);
3008return _string.Substring(_info.Offset.Scheme, _info.Offset.Path - _info.Offset.Scheme);
3012if (_info.Offset.Scheme == 0 && _info.Offset.Fragment == _string.Length)
3013return _string;
3015return _string.Substring(_info.Offset.Scheme, _info.Offset.Fragment - _info.Offset.Scheme);
3021return _string.Substring(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme);
3031while (_string[--idx] != ':')
3034return (idx - _info.Offset.Host == 0) ? string.Empty : _string.Substring(_info.Offset.Host,
3041_info.Offset.End > _info.Offset.Path && _string[_info.Offset.Path] == '/')
3050return _string.Substring(delimiterAwareIdx, _info.Offset.Query - delimiterAwareIdx);
3062return _string.Substring(delimiterAwareIdx, _info.Offset.Fragment - delimiterAwareIdx);
3074return _string.Substring(delimiterAwareIdx, _info.Offset.End - delimiterAwareIdx);
3078_string.Substring(_info.Offset.User, _info.Offset.Path - _info.Offset.User);
3084return string.Concat(_string.AsSpan(_info.Offset.User, _info.Offset.Path - _info.Offset.User),
3088return _string.Substring(_info.Offset.Path, _info.Offset.Fragment - _info.Offset.Path);
3094_string.AsSpan(_info.Offset.Scheme, _info.Offset.User - _info.Offset.Scheme),
3095_string.AsSpan(_info.Offset.Host, _info.Offset.End - _info.Offset.Host));
3097if (_info.Offset.Scheme == 0 && _info.Offset.End == _string.Length)
3098return _string;
3100return _string.Substring(_info.Offset.Scheme, _info.Offset.End - _info.Offset.Scheme);
3103return _string.Substring(_info.Offset.Path, _info.Offset.End - _info.Offset.Path);
3119return _string.Substring(_info.Offset.User, delimiterAwareIdx - _info.Offset.User);
3153string inputStr = _string;
3413/// <summary>Recreates the <see cref="_string"/> by normalizing the Path, Query and Fragment for non-ASCII inputs.</summary>
3450Debug.Assert(!ReferenceEquals(_string, OriginalString));
3452vsb.Append(_string);
4189dest.Append(_string.AsSpan(_info.Offset.Path, _info.Offset.Query - _info.Offset.Path));
4205ReadOnlySpan<char> str = _string;
4221dest.Append(_string.AsSpan(_info.Offset.Path, _info.Offset.Query - _info.Offset.Path));
4242dest.Append(_string.AsSpan(_info.Offset.Path, _info.Offset.Query - _info.Offset.Path));
System\UriExt.cs (18)
17[MemberNotNull(nameof(_string))]
29[MemberNotNull(nameof(_string))]
49ParsingError err = ParseScheme(_string, ref _flags, ref _syntax!);
54if (IriParsing && CheckForUnicodeOrEscapedUnreserved(_string))
58_originalUnicodeString = _string; // original string location changed
88((_string.Length >= 2 && (_string[0] != '\\' || _string[1] != '\\'))
381string str = _string;
735if (ReferenceEquals(newUriString, baseUri._string))
745return UriHelper.EscapeString(_string, checkExistingEscaped: true, UriHelper.UnreservedReserved);
749return UnescapeDataString(_string);
753if (_string.Length == 0)
757UriHelper.UnescapeString(_string, ref vsb, c_DummyChar, c_DummyChar, c_DummyChar, UnescapeMode.EscapeUnescape, null, false);
888[MemberNotNull(nameof(_string))]
917while (otherUri._string[portIndex] != ':' && portIndex > otherUri._info.Offset.Host)
921if (otherUri._string[portIndex] != ':')
933_string = otherUri._string;