Declare out variables inline, and use discards (#873)

This commit is contained in:
Gert Driesen 2018-10-21 03:05:05 +02:00 committed by James Newton-King
parent 3c9086e3d0
commit 42914d93ca
29 changed files with 44 additions and 88 deletions

View File

@ -125,15 +125,13 @@ namespace Microsoft.AspNetCore.Routing.DecisionTree
unsatisfiedCriteria++; unsatisfiedCriteria++;
Criterion criterion; if (!criteria.TryGetValue(kvp.Key, out var criterion))
if (!criteria.TryGetValue(kvp.Key, out criterion))
{ {
criterion = new Criterion(comparer); criterion = new Criterion(comparer);
criteria.Add(kvp.Key, criterion); criteria.Add(kvp.Key, criterion);
} }
List<ItemDescriptor<TItem>> branch; if (!criterion.TryGetValue(kvp.Value, out var branch))
if (!criterion.TryGetValue(kvp.Value, out branch))
{ {
branch = new List<ItemDescriptor<TItem>>(); branch = new List<ItemDescriptor<TItem>>();
criterion.Add(kvp.Value, branch); criterion.Add(kvp.Value, branch);

View File

@ -30,17 +30,15 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
if (value is bool) if (value is bool)
{ {
return true; return true;
} }
bool result;
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
return bool.TryParse(valueString, out result); return bool.TryParse(valueString, out _);
} }
return false; return false;

View File

@ -36,17 +36,15 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
if (value is DateTime) if (value is DateTime)
{ {
return true; return true;
} }
DateTime result;
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
return DateTime.TryParse(valueString, CultureInfo.InvariantCulture, DateTimeStyles.None, out result); return DateTime.TryParse(valueString, CultureInfo.InvariantCulture, DateTimeStyles.None, out _);
} }
return false; return false;

View File

@ -30,17 +30,15 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
if (value is decimal) if (value is decimal)
{ {
return true; return true;
} }
decimal result;
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
return decimal.TryParse(valueString, NumberStyles.Number, CultureInfo.InvariantCulture, out result); return decimal.TryParse(valueString, NumberStyles.Number, CultureInfo.InvariantCulture, out _);
} }
return false; return false;

View File

@ -30,21 +30,19 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
if (value is double) if (value is double)
{ {
return true; return true;
} }
double result;
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
return double.TryParse( return double.TryParse(
valueString, valueString,
NumberStyles.Float | NumberStyles.AllowThousands, NumberStyles.Float | NumberStyles.AllowThousands,
CultureInfo.InvariantCulture, CultureInfo.InvariantCulture,
out result); out _);
} }
return false; return false;

View File

@ -30,21 +30,19 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
if (value is float) if (value is float)
{ {
return true; return true;
} }
float result;
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
return float.TryParse( return float.TryParse(
valueString, valueString,
NumberStyles.Float | NumberStyles.AllowThousands, NumberStyles.Float | NumberStyles.AllowThousands,
CultureInfo.InvariantCulture, CultureInfo.InvariantCulture,
out result); out _);
} }
return false; return false;

View File

@ -32,17 +32,15 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
if (value is Guid) if (value is Guid)
{ {
return true; return true;
} }
Guid result;
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
return Guid.TryParse(valueString, out result); return Guid.TryParse(valueString, out _);
} }
return false; return false;

View File

@ -76,8 +76,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints
// signal that he is generating a URI that will be used for an HTTP POST, so he wants the URI // signal that he is generating a URI that will be used for an HTTP POST, so he wants the URI
// generation to be performed by the (b) route instead of the (a) route, consistent with what would // generation to be performed by the (b) route instead of the (a) route, consistent with what would
// happen on incoming requests. // happen on incoming requests.
object obj; if (!values.TryGetValue(routeKey, out var obj))
if (!values.TryGetValue(routeKey, out obj))
{ {
return true; return true;
} }

View File

@ -30,17 +30,15 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
if (value is int) if (value is int)
{ {
return true; return true;
} }
int result;
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
return int.TryParse(valueString, NumberStyles.Integer, CultureInfo.InvariantCulture, out result); return int.TryParse(valueString, NumberStyles.Integer, CultureInfo.InvariantCulture, out _);
} }
return false; return false;

View File

@ -87,8 +87,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
var length = valueString.Length; var length = valueString.Length;

View File

@ -30,17 +30,15 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
if (value is long) if (value is long)
{ {
return true; return true;
} }
long result;
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
return long.TryParse(valueString, NumberStyles.Integer, CultureInfo.InvariantCulture, out result); return long.TryParse(valueString, NumberStyles.Integer, CultureInfo.InvariantCulture, out _);
} }
return false; return false;

View File

@ -50,8 +50,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
return valueString.Length <= MaxLength; return valueString.Length <= MaxLength;

View File

@ -44,12 +44,10 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
long longValue;
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
if (long.TryParse(valueString, NumberStyles.Integer, CultureInfo.InvariantCulture, out longValue)) if (long.TryParse(valueString, NumberStyles.Integer, CultureInfo.InvariantCulture, out var longValue))
{ {
return longValue <= Max; return longValue <= Max;
} }

View File

@ -50,8 +50,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
return valueString.Length >= MinLength; return valueString.Length >= MinLength;

View File

@ -44,12 +44,10 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
long longValue;
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
if (long.TryParse(valueString, NumberStyles.Integer, CultureInfo.InvariantCulture, out longValue)) if (long.TryParse(valueString, NumberStyles.Integer, CultureInfo.InvariantCulture, out var longValue))
{ {
return longValue >= Min; return longValue >= Min;
} }

View File

@ -40,8 +40,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value))
if (values.TryGetValue(routeKey, out value))
{ {
return InnerConstraint.Match(httpContext, return InnerConstraint.Match(httpContext,
route, route,

View File

@ -58,12 +58,10 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
long longValue;
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
if (Int64.TryParse(valueString, NumberStyles.Integer, CultureInfo.InvariantCulture, out longValue)) if (long.TryParse(valueString, NumberStyles.Integer, CultureInfo.InvariantCulture, out var longValue))
{ {
return longValue >= Min && longValue <= Max; return longValue >= Min && longValue <= Max;
} }

View File

@ -54,9 +54,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object routeValue; if (values.TryGetValue(routeKey, out var routeValue)
if (values.TryGetValue(routeKey, out routeValue)
&& routeValue != null) && routeValue != null)
{ {
var parameterValueString = Convert.ToString(routeValue, CultureInfo.InvariantCulture); var parameterValueString = Convert.ToString(routeValue, CultureInfo.InvariantCulture);

View File

@ -34,8 +34,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object value; if (values.TryGetValue(routeKey, out var value) && value != null)
if (values.TryGetValue(routeKey, out value) && value != null)
{ {
// In routing the empty string is equivalent to null, which is equivalent to an unset value. // In routing the empty string is equivalent to null, which is equivalent to an unset value.
var valueString = Convert.ToString(value, CultureInfo.InvariantCulture); var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);

View File

@ -41,9 +41,7 @@ namespace Microsoft.AspNetCore.Routing.Constraints
throw new ArgumentNullException(nameof(values)); throw new ArgumentNullException(nameof(values));
} }
object routeValue; if (values.TryGetValue(routeKey, out var routeValue)
if (values.TryGetValue(routeKey, out routeValue)
&& routeValue != null) && routeValue != null)
{ {
var parameterValueString = Convert.ToString(routeValue, CultureInfo.InvariantCulture); var parameterValueString = Convert.ToString(routeValue, CultureInfo.InvariantCulture);

View File

@ -87,11 +87,9 @@ namespace Microsoft.AspNetCore.Routing.Internal
var criterion = node.Criteria[i]; var criterion = node.Criteria[i];
var key = criterion.Key; var key = criterion.Key;
object value; if (values.TryGetValue(key, out var value))
if (values.TryGetValue(key, out value))
{ {
DecisionTreeNode<OutboundMatch> branch; if (criterion.Branches.TryGetValue(value ?? string.Empty, out var branch))
if (criterion.Branches.TryGetValue(value ?? string.Empty, out branch))
{ {
Walk(results, values, ambientValues, branch, isFallbackPath); Walk(results, values, ambientValues, branch, isFallbackPath);
} }

View File

@ -91,8 +91,8 @@ namespace Microsoft.AspNetCore.Routing
if (!string.IsNullOrEmpty(context.RouteName)) if (!string.IsNullOrEmpty(context.RouteName))
{ {
VirtualPathData namedRoutePathData = null; VirtualPathData namedRoutePathData = null;
INamedRouter matchedNamedRoute;
if (_namedRoutes.TryGetValue(context.RouteName, out matchedNamedRoute)) if (_namedRoutes.TryGetValue(context.RouteName, out var matchedNamedRoute))
{ {
namedRoutePathData = matchedNamedRoute.GetVirtualPath(context); namedRoutePathData = matchedNamedRoute.GetVirtualPath(context);
} }

View File

@ -184,8 +184,7 @@ namespace Microsoft.AspNetCore.Routing
private void Add(string key, IRouteConstraint constraint) private void Add(string key, IRouteConstraint constraint)
{ {
List<IRouteConstraint> list; if (!_constraints.TryGetValue(key, out var list))
if (!_constraints.TryGetValue(key, out list))
{ {
list = new List<IRouteConstraint>(); list = new List<IRouteConstraint>();
_constraints.Add(key, list); _constraints.Add(key, list);

View File

@ -51,8 +51,7 @@ namespace Microsoft.AspNetCore.Routing
{ {
if (routeDirection.Equals(RouteDirection.IncomingRequest)) if (routeDirection.Equals(RouteDirection.IncomingRequest))
{ {
object routeValue; routeValues.TryGetValue(kvp.Key, out var routeValue);
routeValues.TryGetValue(kvp.Key, out routeValue);
logger.RouteValueDoesNotMatchConstraint(routeValue, kvp.Key, kvp.Value); logger.RouteValueDoesNotMatchConstraint(routeValue, kvp.Key, kvp.Value);
} }

View File

@ -49,8 +49,7 @@ namespace Microsoft.AspNetCore.Routing.Template
continue; continue;
} }
object value; if (Defaults.TryGetValue(part.Name, out var value))
if (Defaults.TryGetValue(part.Name, out value))
{ {
_hasDefaultValue[i] = true; _hasDefaultValue[i] = true;
_defaultValues[i] = value; _defaultValues[i] = value;

View File

@ -91,9 +91,8 @@ namespace Microsoft.AspNetCore.Routing.Tree
if (next.Literals.Count > 0) if (next.Literals.Count > 0)
{ {
UrlMatchingNode node;
Debug.Assert(next.Depth < _tokenizer.Count); Debug.Assert(next.Depth < _tokenizer.Count);
if (next.Literals.TryGetValue(_tokenizer[next.Depth].Value, out node)) if (next.Literals.TryGetValue(_tokenizer[next.Depth].Value, out var node))
{ {
_stack.Push(node); _stack.Push(node);
} }

View File

@ -259,8 +259,7 @@ namespace Microsoft.AspNetCore.Routing.Tree
foreach (var entry in InboundEntries) foreach (var entry in InboundEntries)
{ {
UrlMatchingTree tree; if (!trees.TryGetValue(entry.Order, out var tree))
if (!trees.TryGetValue(entry.Order, out tree))
{ {
tree = new UrlMatchingTree(entry.Order); tree = new UrlMatchingTree(entry.Order);
trees.Add(entry.Order, tree); trees.Add(entry.Order, tree);

View File

@ -103,8 +103,7 @@ namespace Microsoft.AspNetCore.Routing.Tree
// We only need to keep one OutboundMatch per route template // We only need to keep one OutboundMatch per route template
// so in case two entries have the same name and the same template we only keep // so in case two entries have the same name and the same template we only keep
// the first entry. // the first entry.
OutboundMatch namedMatch; if (_namedEntries.TryGetValue(entry.RouteName, out var namedMatch) &&
if (_namedEntries.TryGetValue(entry.RouteName, out namedMatch) &&
!string.Equals( !string.Equals(
namedMatch.Entry.RouteTemplate.TemplateText, namedMatch.Entry.RouteTemplate.TemplateText,
entry.RouteTemplate.TemplateText, entry.RouteTemplate.TemplateText,
@ -233,8 +232,7 @@ namespace Microsoft.AspNetCore.Routing.Tree
private VirtualPathData GetVirtualPathForNamedRoute(VirtualPathContext context) private VirtualPathData GetVirtualPathForNamedRoute(VirtualPathContext context)
{ {
OutboundMatch match; if (_namedEntries.TryGetValue(context.RouteName, out var match))
if (_namedEntries.TryGetValue(context.RouteName, out match))
{ {
var path = GenerateVirtualPath(context, match.Entry, match.TemplateBinder); var path = GenerateVirtualPath(context, match.Entry, match.TemplateBinder);
if (path != null) if (path != null)

View File

@ -86,8 +86,7 @@ namespace Microsoft.AspNetCore.Routing.Tree
var part = segment.Parts[0]; var part = segment.Parts[0];
if (part.IsLiteral) if (part.IsLiteral)
{ {
UrlMatchingNode next; if (!current.Literals.TryGetValue(part.Text, out var next))
if (!current.Literals.TryGetValue(part.Text, out next))
{ {
next = new UrlMatchingNode(length: i + 1); next = new UrlMatchingNode(length: i + 1);
current.Literals.Add(part.Text, next); current.Literals.Add(part.Text, next);