Fix CA1010

This commit is contained in:
RoosterDragon
2023-03-12 10:57:06 +00:00
committed by abcdefg30
parent 1db982276a
commit f09241d263
4 changed files with 25 additions and 17 deletions

View File

@@ -612,6 +612,10 @@ dotnet_code_quality.api_surface = all
### Design Rules
### https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/design-warnings
# Collections should implement generic interface.
#dotnet_code_quality.CA1010.additional_required_generic_interfaces =
dotnet_diagnostic.CA1010.severity = warning
# Provide ObsoleteAttribute message.
dotnet_diagnostic.CA1041.severity = warning

View File

@@ -22,7 +22,7 @@ namespace OpenRA
{
public interface ISuppressInitExport { }
public class ActorReference : IEnumerable
public class ActorReference : IEnumerable<object>
{
public string Type;
readonly Lazy<TypeDictionary> initDict;
@@ -104,7 +104,9 @@ namespace OpenRA
return ret;
}
public IEnumerator GetEnumerator() { return initDict.Value.GetEnumerator(); }
public IEnumerator<object> GetEnumerator() { return initDict.Value.GetEnumerator(); }
IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); }
public ActorReference Clone()
{

View File

@@ -16,7 +16,7 @@ using System.Linq;
namespace OpenRA.Primitives
{
public class TypeDictionary : IEnumerable
public class TypeDictionary : IEnumerable<object>
{
static readonly Func<Type, List<object>> CreateList = type => new List<object>();
readonly Dictionary<Type, List<object>> data = new();
@@ -105,10 +105,15 @@ namespace OpenRA.Primitives
objs.TrimExcess();
}
public IEnumerator GetEnumerator()
public IEnumerator<object> GetEnumerator()
{
return WithInterface<object>().GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
public static class TypeExts

View File

@@ -16,10 +16,10 @@ using System.Text;
namespace OpenRA.Support
{
public class HttpQueryBuilder : IEnumerable
public class HttpQueryBuilder : IEnumerable<KeyValuePair<string, string>>
{
readonly string url;
readonly List<Parameter> parameters = new();
readonly List<KeyValuePair<string, string>> parameters = new();
public HttpQueryBuilder(string url)
{
@@ -28,11 +28,9 @@ namespace OpenRA.Support
public void Add(string name, object value)
{
parameters.Add(new Parameter
{
Name = name,
Value = Uri.EscapeDataString(value.ToString())
});
parameters.Add(KeyValuePair.Create(
name,
Uri.EscapeDataString(value.ToString())));
}
public override string ToString()
@@ -42,20 +40,19 @@ namespace OpenRA.Support
builder.Append("?");
foreach (var parameter in parameters)
builder.Append($"{parameter.Name}={parameter.Value}&");
builder.Append($"{parameter.Key}={parameter.Value}&");
return builder.ToString();
}
class Parameter
public IEnumerator<KeyValuePair<string, string>> GetEnumerator()
{
public string Name { get; set; }
public string Value { get; set; }
return parameters.GetEnumerator();
}
public IEnumerator GetEnumerator()
IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
return GetEnumerator();
}
}
}