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

◆ Equals()

override bool System.Uri.Equals ( [NotNullWhen(true)] object? comparand)
inline

Definition at line 1166 of file Uri.cs.

1167 {
1168 if (comparand == null)
1169 {
1170 return false;
1171 }
1172 if (this == comparand)
1173 {
1174 return true;
1175 }
1176 Uri result = comparand as Uri;
1177 if ((object)result == null)
1178 {
1180 {
1181 return false;
1182 }
1183 if (!(comparand is string text))
1184 {
1185 return false;
1186 }
1187 if ((object)text == OriginalString)
1188 {
1189 return true;
1190 }
1191 if (!TryCreate(text, UriKind.RelativeOrAbsolute, out result))
1192 {
1193 return false;
1194 }
1195 }
1196 if (DisablePathAndQueryCanonicalization != result.DisablePathAndQueryCanonicalization)
1197 {
1198 return false;
1199 }
1200 if ((object)OriginalString == result.OriginalString)
1201 {
1202 return true;
1203 }
1204 if (IsAbsoluteUri != result.IsAbsoluteUri)
1205 {
1206 return false;
1207 }
1208 if (IsNotAbsoluteUri)
1209 {
1210 return OriginalString.Equals(result.OriginalString);
1211 }
1212 if ((NotAny(Flags.AllUriInfoSet) || result.NotAny(Flags.AllUriInfoSet)) && string.Equals(_string, result._string, IsUncOrDosPath ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal))
1213 {
1214 return true;
1215 }
1216 EnsureUriInfo();
1217 result.EnsureUriInfo();
1218 if (!UserDrivenParsing && !result.UserDrivenParsing && Syntax.IsSimple && result.Syntax.IsSimple)
1219 {
1220 if (InFact(Flags.CanonicalDnsHost) && result.InFact(Flags.CanonicalDnsHost))
1221 {
1222 int num = _info.Offset.Host;
1223 int num2 = _info.Offset.Path;
1224 int num3 = result._info.Offset.Host;
1225 int path = result._info.Offset.Path;
1226 string @string = result._string;
1227 if (num2 - num > path - num3)
1228 {
1229 num2 = num + path - num3;
1230 }
1231 while (num < num2)
1232 {
1233 if (_string[num] != @string[num3])
1234 {
1235 return false;
1236 }
1237 if (@string[num3] == ':')
1238 {
1239 break;
1240 }
1241 num++;
1242 num3++;
1243 }
1244 if (num < _info.Offset.Path && _string[num] != ':')
1245 {
1246 return false;
1247 }
1248 if (num3 < path && @string[num3] != ':')
1249 {
1250 return false;
1251 }
1252 }
1253 else
1254 {
1256 result.EnsureHostString(allowDnsOptimization: false);
1257 if (!_info.Host.Equals(result._info.Host))
1258 {
1259 return false;
1260 }
1261 }
1262 if (Port != result.Port)
1263 {
1264 return false;
1265 }
1266 }
1267 MoreInfo moreInfo = _info.MoreInfo;
1268 MoreInfo moreInfo2 = result._info.MoreInfo;
1269 MoreInfo moreInfo3 = moreInfo;
1270 string a = moreInfo3.RemoteUrl ?? (moreInfo3.RemoteUrl = GetParts(UriComponents.HttpRequestUrl, UriFormat.SafeUnescaped));
1272 string b = moreInfo3.RemoteUrl ?? (moreInfo3.RemoteUrl = result.GetParts(UriComponents.HttpRequestUrl, UriFormat.SafeUnescaped));
1273 return string.Equals(a, b, IsUncOrDosPath ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal);
1274 }
string Host
Definition Uri.cs:85
MoreInfo MoreInfo
Definition Uri.cs:96
Offset Offset
Definition Uri.cs:81
bool IsUncOrDosPath
Definition Uri.cs:203
Uri(string uriString)
Definition Uri.cs:653
UriParser Syntax
Definition Uri.cs:211
static bool TryCreate([NotNullWhen(true)] string? uriString, UriKind uriKind, [NotNullWhen(true)] out Uri? result)
Definition Uri.cs:3793
bool UserDrivenParsing
Definition Uri.cs:219
bool DisablePathAndQueryCanonicalization
Definition Uri.cs:217
bool IsAbsoluteUri
Definition Uri.cs:572
string OriginalString
Definition Uri.cs:516
bool NotAny(Flags flags)
Definition Uri.cs:606
bool IsNotAbsoluteUri
Definition Uri.cs:213
UriInfo EnsureUriInfo()
Definition Uri.cs:626
string GetParts(UriComponents uriParts, UriFormat formatAs)
Definition Uri.cs:1828
void EnsureHostString(bool allowDnsOptimization)
Definition Uri.cs:644
bool InFact(Flags flags)
Definition Uri.cs:611
string _string
Definition Uri.cs:189
int Port
Definition Uri.cs:453
UriInfo _info
Definition Uri.cs:197
UriKind
Definition UriKind.cs:4
UriFormat
Definition UriFormat.cs:4
ushort Path
Definition Uri.cs:119
ushort Host
Definition Uri.cs:115

References System.Uri.Uri(), System.Uri._info, System.Uri._string, System.Runtime.Serialization.Dictionary, System.Uri.DisablePathAndQueryCanonicalization, System.Uri.EnsureHostString(), System.Uri.EnsureUriInfo(), System.Uri.GetParts(), System.Uri.UriInfo.Host, System.Uri.Offset.Host, System.Uri.InFact(), System.Uri.IsAbsoluteUri, System.Uri.IsNotAbsoluteUri, System.UriParser.IsSimple, System.Uri.IsUncOrDosPath, System.Uri.UriInfo.MoreInfo, System.Uri.NotAny(), System.Uri.UriInfo.Offset, System.Uri.OriginalString, System.Uri.Offset.Path, System.Uri.Port, System.Uri.Syntax, System.text, System.Uri.TryCreate(), and System.Uri.UserDrivenParsing.

Referenced by System.Net.CredentialKey.Equals(), System.Xml.Schema.ChameleonKey.Equals(), System.UriBuilder.Equals(), and System.Net.Http.HttpEnvironmentProxyCredentials.GetCredential().