Browse Source

Apply code review feedbacks

pull/7935/head
Steven He 4 years ago
parent
commit
7418fd7dc3
  1. 2
      Avalonia.sln
  2. 1
      src/Avalonia.Base/Avalonia.Base.csproj
  3. 12
      src/Avalonia.Base/Input/KeyGesture.cs
  4. 1
      src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj
  5. 14
      src/Avalonia.DesignerSupport/Remote/HtmlTransport/HtmlTransport.cs
  6. 19
      src/Shared/EnumParserHelper.cs

2
Avalonia.sln

@ -38,8 +38,8 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{A689DEF5-D50F-4975-8B72-124C9EB54066}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
src\Shared\EnumParserHelper.cs = src\Shared\EnumParserHelper.cs
src\Shared\ModuleInitializer.cs = src\Shared\ModuleInitializer.cs
src\Shared\RawEventGrouping.cs = src\Shared\RawEventGrouping.cs
src\Shared\SourceGeneratorAttributes.cs = src\Shared\SourceGeneratorAttributes.cs
EndProjectSection
EndProject

1
src/Avalonia.Base/Avalonia.Base.csproj

@ -7,6 +7,7 @@
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Include="Assets\*.trie" />
<Compile Include="..\Shared\EnumParserHelper.cs" />
</ItemGroup>
<Import Project="..\..\build\Base.props" />
<Import Project="..\..\build\Binding.props" />

12
src/Avalonia.Base/Input/KeyGesture.cs

@ -155,11 +155,7 @@ namespace Avalonia.Input
if (s_keySynonyms.TryGetValue(key.ToLower(), out Key rv))
return rv;
#if NETSTANDARD2_0
return (Key)Enum.Parse(typeof(Key), key, true);
#else
return Enum.Parse<Key>(key, true);
#endif
return EnumParserHelper.ParseEnum<Key>(key, true);
}
private static KeyModifiers ParseModifier(ReadOnlySpan<char> modifier)
@ -176,11 +172,7 @@ namespace Avalonia.Input
return KeyModifiers.Meta;
}
#if NETSTANDARD2_0
return (KeyModifiers)Enum.Parse(typeof(KeyModifiers), modifier.ToString(), true);
#else
return Enum.Parse<KeyModifiers>(modifier.ToString(), true);
#endif
return EnumParserHelper.ParseEnum<KeyModifiers>(modifier.ToString(), true);
}
private Key ResolveNumPadOperationKey(Key key)

1
src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj

@ -19,6 +19,7 @@
<ProjectReference Include="..\Avalonia.Base\Avalonia.Base.csproj" />
<ProjectReference Include="..\Avalonia.Controls\Avalonia.Controls.csproj" />
<ProjectReference Include="..\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
<Compile Include="..\Shared\EnumParserHelper.cs" />
</ItemGroup>
<Import Project="..\..\build\Rx.props" />
<Import Project="..\..\build\ApiDiff.props" />

14
src/Avalonia.DesignerSupport/Remote/HtmlTransport/HtmlTransport.cs

@ -320,23 +320,13 @@ namespace Avalonia.DesignerSupport.Remote.HtmlTransport
? null
: modifiersText
.Split(',')
#if NETSTANDARD2_0
.Select(x => (InputProtocol.InputModifiers)Enum.Parse(
typeof(InputProtocol.InputModifiers), x, true))
#else
.Select(x => Enum.Parse<InputProtocol.InputModifiers>(x, true))
#endif
.Select(x => EnumParserHelper.ParseEnum<InputProtocol.InputModifiers>(x, true))
.ToArray();
private static InputProtocol.MouseButton ParseMouseButton(string buttonText) =>
string.IsNullOrWhiteSpace(buttonText)
? InputProtocol.MouseButton.None
#if NETSTANDARD2_0
: (InputProtocol.MouseButton)Enum.Parse(
typeof(InputProtocol.MouseButton), buttonText, true);
#else
: Enum.Parse<InputProtocol.MouseButton>(buttonText, true);
#endif
: EnumParserHelper.ParseEnum<InputProtocol.MouseButton>(buttonText, true);
private static double ParseDouble(string text) =>
double.Parse(text, NumberStyles.Float, CultureInfo.InvariantCulture);

19
src/Shared/EnumParserHelper.cs

@ -0,0 +1,19 @@
using System;
namespace Avalonia
{
internal class EnumParserHelper
{
#if NET6_0
public static T ParseEnum<T>(ReadOnlySpan<char> key, bool ignoreCase) where T : struct
{
return Enum.Parse<T>(key, ignoreCase);
}
#else
public static T ParseEnum<T>(string key, bool ignoreCase) where T : struct
{
return (T)Enum.Parse(typeof(T), key, ignoreCase);
}
#endif
}
}
Loading…
Cancel
Save