Skip to content

Commit 14f9e98

Browse files
committed
Upgraded to C# 9
1 parent d04094f commit 14f9e98

17 files changed

+198
-243
lines changed

SmartSystemMenu.sln

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 15
4-
VisualStudioVersion = 15.0.28307.852
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.29318.209
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartSystemMenu", "SmartSystemMenu\SmartSystemMenu.csproj", "{CCC625F9-BC33-48E4-9C64-31BEC4163244}"
77
EndProject

SmartSystemMenu/AutoStarter.cs

+10-16
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,14 @@ static class AutoStarter
99

1010
public static void SetAutoStartByRegister(string keyName, string assemblyLocation)
1111
{
12-
using (var key = Registry.CurrentUser.CreateSubKey(RUN_LOCATION))
13-
{
14-
key.SetValue(keyName, assemblyLocation);
15-
}
12+
using var key = Registry.CurrentUser.CreateSubKey(RUN_LOCATION);
13+
key.SetValue(keyName, assemblyLocation);
1614
}
1715

1816
public static void UnsetAutoStartByRegister(string keyName)
1917
{
20-
using (var key = Registry.CurrentUser.CreateSubKey(RUN_LOCATION))
21-
{
22-
key.DeleteValue(keyName);
23-
}
18+
using var key = Registry.CurrentUser.CreateSubKey(RUN_LOCATION);
19+
key.DeleteValue(keyName);
2420
}
2521

2622
public static void SetAutoStartByScheduler(string keyName, string assemblyLocation)
@@ -59,14 +55,12 @@ public static void UnsetAutoStartByScheduler(string keyName)
5955

6056
public static bool IsAutoStartByRegisterEnabled(string keyName, string assemblyLocation)
6157
{
62-
using (var key = Registry.CurrentUser.OpenSubKey(RUN_LOCATION))
63-
{
64-
if (key == null) return false;
65-
var value = (string)key.GetValue(keyName);
66-
if (string.IsNullOrEmpty(value)) return false;
67-
var result = (value == assemblyLocation);
68-
return result;
69-
}
58+
using var key = Registry.CurrentUser.OpenSubKey(RUN_LOCATION);
59+
if (key == null) return false;
60+
var value = (string)key.GetValue(keyName);
61+
if (string.IsNullOrEmpty(value)) return false;
62+
var result = (value == assemblyLocation);
63+
return result;
7064
}
7165
}
7266
}

SmartSystemMenu/EnumWindows.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ static class EnumWindows
1515

1616
public static IList<Window> EnumAllWindows(SmartSystemMenuSettings settings, WindowSettings windowSettings, params string[] filterTitles)
1717
{
18-
_filterTitles = filterTitles ?? new string[0];
18+
_filterTitles ??= new string[0];
1919
_windows = new List<Window>();
2020
_settings = settings;
2121
_windowSettings = windowSettings;

SmartSystemMenu/Extensions/PriorityClassExtensions.cs

+9-12
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,15 @@ namespace SmartSystemMenu.Extensions
44
{
55
static class PriorityClassExtensions
66
{
7-
public static Priority GetPriority(this PriorityClass priorityClass)
7+
public static Priority GetPriority(this PriorityClass priorityClass) => priorityClass switch
88
{
9-
switch (priorityClass)
10-
{
11-
case PriorityClass.REALTIME_PRIORITY_CLASS: return Priority.RealTime;
12-
case PriorityClass.HIGH_PRIORITY_CLASS: return Priority.High;
13-
case PriorityClass.ABOVE_NORMAL_PRIORITY_CLASS: return Priority.AboveNormal;
14-
case PriorityClass.NORMAL_PRIORITY_CLASS: return Priority.Normal;
15-
case PriorityClass.BELOW_NORMAL_PRIORITY_CLASS: return Priority.BelowNormal;
16-
case PriorityClass.IDLE_PRIORITY_CLASS: return Priority.Idle;
17-
default: return Priority.Normal;
18-
}
19-
}
9+
PriorityClass.REALTIME_PRIORITY_CLASS => Priority.RealTime,
10+
PriorityClass.HIGH_PRIORITY_CLASS => Priority.High,
11+
PriorityClass.ABOVE_NORMAL_PRIORITY_CLASS => Priority.AboveNormal,
12+
PriorityClass.NORMAL_PRIORITY_CLASS => Priority.Normal,
13+
PriorityClass.BELOW_NORMAL_PRIORITY_CLASS => Priority.BelowNormal,
14+
PriorityClass.IDLE_PRIORITY_CLASS => Priority.Idle,
15+
_ => Priority.Normal
16+
};
2017
}
2118
}

SmartSystemMenu/Extensions/PriorityExtensions.cs

+18-24
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,26 @@ namespace SmartSystemMenu.Extensions
44
{
55
static class PriorityExtensions
66
{
7-
public static int GetMenuItemId(this Priority priority)
7+
public static int GetMenuItemId(this Priority priority) => priority switch
88
{
9-
switch (priority)
10-
{
11-
case Priority.RealTime: return MenuItemId.SC_PRIORITY_REAL_TIME;
12-
case Priority.High: return MenuItemId.SC_PRIORITY_HIGH;
13-
case Priority.AboveNormal: return MenuItemId.SC_PRIORITY_ABOVE_NORMAL;
14-
case Priority.Normal: return MenuItemId.SC_PRIORITY_NORMAL;
15-
case Priority.BelowNormal: return MenuItemId.SC_PRIORITY_BELOW_NORMAL;
16-
case Priority.Idle: return MenuItemId.SC_PRIORITY_IDLE;
17-
default: return MenuItemId.SC_PRIORITY_NORMAL;
18-
}
19-
}
9+
Priority.RealTime => MenuItemId.SC_PRIORITY_REAL_TIME,
10+
Priority.High => MenuItemId.SC_PRIORITY_HIGH,
11+
Priority.AboveNormal => MenuItemId.SC_PRIORITY_ABOVE_NORMAL,
12+
Priority.Normal => MenuItemId.SC_PRIORITY_NORMAL,
13+
Priority.BelowNormal => MenuItemId.SC_PRIORITY_BELOW_NORMAL,
14+
Priority.Idle => MenuItemId.SC_PRIORITY_IDLE,
15+
_ => MenuItemId.SC_PRIORITY_NORMAL
16+
};
2017

21-
public static PriorityClass GetPriorityClass(this Priority priority)
18+
public static PriorityClass GetPriorityClass(this Priority priority) => priority switch
2219
{
23-
switch (priority)
24-
{
25-
case Priority.RealTime: return PriorityClass.REALTIME_PRIORITY_CLASS;
26-
case Priority.High: return PriorityClass.HIGH_PRIORITY_CLASS;
27-
case Priority.AboveNormal: return PriorityClass.ABOVE_NORMAL_PRIORITY_CLASS;
28-
case Priority.Normal: return PriorityClass.NORMAL_PRIORITY_CLASS;
29-
case Priority.BelowNormal: return PriorityClass.BELOW_NORMAL_PRIORITY_CLASS;
30-
case Priority.Idle: return PriorityClass.IDLE_PRIORITY_CLASS;
31-
default: return PriorityClass.NORMAL_PRIORITY_CLASS;
32-
}
33-
}
20+
Priority.RealTime => PriorityClass.REALTIME_PRIORITY_CLASS,
21+
Priority.High => PriorityClass.HIGH_PRIORITY_CLASS,
22+
Priority.AboveNormal => PriorityClass.ABOVE_NORMAL_PRIORITY_CLASS,
23+
Priority.Normal => PriorityClass.NORMAL_PRIORITY_CLASS,
24+
Priority.BelowNormal => PriorityClass.BELOW_NORMAL_PRIORITY_CLASS,
25+
Priority.Idle => PriorityClass.IDLE_PRIORITY_CLASS,
26+
_ => PriorityClass.NORMAL_PRIORITY_CLASS
27+
};
3428
}
3529
}

SmartSystemMenu/Extensions/WindowAlignmentExtensions.cs

+14-17
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,20 @@ namespace SmartSystemMenu.Extensions
44
{
55
static class WindowAlignmentExtensions
66
{
7-
public static int GetMenuItemId(this WindowAlignment alignment)
7+
public static int GetMenuItemId(this WindowAlignment alignment) => alignment switch
88
{
9-
switch (alignment)
10-
{
11-
case WindowAlignment.TopLeft: return MenuItemId.SC_ALIGN_TOP_LEFT;
12-
case WindowAlignment.TopCenter: return MenuItemId.SC_ALIGN_TOP_CENTER;
13-
case WindowAlignment.TopRight: return MenuItemId.SC_ALIGN_TOP_RIGHT;
14-
case WindowAlignment.MiddleLeft: return MenuItemId.SC_ALIGN_MIDDLE_LEFT;
15-
case WindowAlignment.MiddleCenter: return MenuItemId.SC_ALIGN_MIDDLE_CENTER;
16-
case WindowAlignment.MiddleRight: return MenuItemId.SC_ALIGN_MIDDLE_RIGHT;
17-
case WindowAlignment.BottomLeft: return MenuItemId.SC_ALIGN_BOTTOM_LEFT;
18-
case WindowAlignment.BottomCenter: return MenuItemId.SC_ALIGN_BOTTOM_CENTER;
19-
case WindowAlignment.BottomRight: return MenuItemId.SC_ALIGN_BOTTOM_RIGHT;
20-
case WindowAlignment.CenterHorizontally: return MenuItemId.SC_ALIGN_CENTER_HORIZONTALLY;
21-
case WindowAlignment.CenterVertically: return MenuItemId.SC_ALIGN_CENTER_VERTICALLY;
22-
default: throw new ArgumentException(nameof(alignment));
23-
}
24-
}
9+
WindowAlignment.TopLeft => MenuItemId.SC_ALIGN_TOP_LEFT,
10+
WindowAlignment.TopCenter => MenuItemId.SC_ALIGN_TOP_CENTER,
11+
WindowAlignment.TopRight => MenuItemId.SC_ALIGN_TOP_RIGHT,
12+
WindowAlignment.MiddleLeft => MenuItemId.SC_ALIGN_MIDDLE_LEFT,
13+
WindowAlignment.MiddleCenter => MenuItemId.SC_ALIGN_MIDDLE_CENTER,
14+
WindowAlignment.MiddleRight => MenuItemId.SC_ALIGN_MIDDLE_RIGHT,
15+
WindowAlignment.BottomLeft => MenuItemId.SC_ALIGN_BOTTOM_LEFT,
16+
WindowAlignment.BottomCenter => MenuItemId.SC_ALIGN_BOTTOM_CENTER,
17+
WindowAlignment.BottomRight => MenuItemId.SC_ALIGN_BOTTOM_RIGHT,
18+
WindowAlignment.CenterHorizontally => MenuItemId.SC_ALIGN_CENTER_HORIZONTALLY,
19+
WindowAlignment.CenterVertically => MenuItemId.SC_ALIGN_CENTER_VERTICALLY,
20+
_ => throw new ArgumentException(nameof(alignment))
21+
};
2522
}
2623
}

SmartSystemMenu/Forms/AboutForm.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ public AboutForm(LanguageSettings settings)
1818
InitializeComponent();
1919
btnOk.Text = settings.GetValue("about_btn_ok");
2020
Text = settings.GetValue("about_form") + AssemblyUtils.AssemblyProductName;
21-
lblProductName.Text = string.Format("{0} v{1}", AssemblyUtils.AssemblyProductName, AssemblyUtils.AssemblyProductVersion);
22-
lblCopyright.Text = string.Format("{0}-{1} {2}", AssemblyUtils.AssemblyCopyright, DateTime.Now.Year, AssemblyUtils.AssemblyCompany);
21+
lblProductName.Text = $"{AssemblyUtils.AssemblyProductName} v{AssemblyUtils.AssemblyProductVersion}";
22+
lblCopyright.Text = $"{AssemblyUtils.AssemblyCopyright}-{DateTime.Now.Year} {AssemblyUtils.AssemblyCompany}";
2323
linkUrl.Text = URL_SMART_SYSTEM_MENU;
2424
}
2525

SmartSystemMenu/Forms/SettingsForm.cs

+14-17
Original file line numberDiff line numberDiff line change
@@ -684,24 +684,21 @@ private void FillGridViewHotKeys(DataGridView gridView, IList<Settings.MenuItem>
684684
}
685685
}
686686

687-
private string GetTransparencyTitle(int id, LanguageSettings languageSettings)
687+
private string GetTransparencyTitle(int id, LanguageSettings languageSettings) => id switch
688688
{
689-
switch (id)
690-
{
691-
case MenuItemId.SC_TRANS_00: return "0%" + languageSettings.GetValue("trans_opaque");
692-
case MenuItemId.SC_TRANS_10: return "10%";
693-
case MenuItemId.SC_TRANS_20: return "20%";
694-
case MenuItemId.SC_TRANS_30: return "30%";
695-
case MenuItemId.SC_TRANS_40: return "40%";
696-
case MenuItemId.SC_TRANS_50: return "50%";
697-
case MenuItemId.SC_TRANS_60: return "60%";
698-
case MenuItemId.SC_TRANS_70: return "70%";
699-
case MenuItemId.SC_TRANS_80: return "80%";
700-
case MenuItemId.SC_TRANS_90: return "90%";
701-
case MenuItemId.SC_TRANS_100: return "100%" + languageSettings.GetValue("trans_invisible");
702-
default: return null;
703-
}
704-
}
689+
MenuItemId.SC_TRANS_00 => "0%" + languageSettings.GetValue("trans_opaque"),
690+
MenuItemId.SC_TRANS_10 => "10%",
691+
MenuItemId.SC_TRANS_20 => "20%",
692+
MenuItemId.SC_TRANS_30 => "30%",
693+
MenuItemId.SC_TRANS_40 => "40%",
694+
MenuItemId.SC_TRANS_50 => "50%",
695+
MenuItemId.SC_TRANS_60 => "60%",
696+
MenuItemId.SC_TRANS_70 => "70%",
697+
MenuItemId.SC_TRANS_80 => "80%",
698+
MenuItemId.SC_TRANS_90 => "90%",
699+
MenuItemId.SC_TRANS_100 => "100%" + languageSettings.GetValue("trans_invisible"),
700+
_ => null
701+
};
705702

706703
private IList<Settings.MenuItem> FindList(IList<Settings.MenuItem> list, Settings.MenuItem element)
707704
{

SmartSystemMenu/MenuItemId.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ internal static class MenuItemId
8484
public const int SC_DISABLE_CLOSE_BUTTON = 0x4820;
8585
public const int SC_CLICK_THROUGH = 0x4822;
8686

87-
private static readonly Dictionary<string, int> NameToId = new Dictionary<string, int>();
88-
private static readonly Dictionary<int, string> IdToName = new Dictionary<int, string>();
87+
private static readonly Dictionary<string, int> NameToId = new ();
88+
private static readonly Dictionary<int, string> IdToName = new ();
8989

9090
static MenuItemId()
9191
{

SmartSystemMenu/SmartSystemMenu.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
1414
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
1515
<FileAlignment>512</FileAlignment>
16+
<LangVersion>9</LangVersion>
1617
</PropertyGroup>
1718
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
1819
<PlatformTarget>x86</PlatformTarget>

SmartSystemMenu/SystemMenu.cs

+14-17
Original file line numberDiff line numberDiff line change
@@ -239,24 +239,21 @@ public void UncheckTransparencyMenu()
239239
CheckMenuItem(MenuItemId.SC_TRANS_DEFAULT, false);
240240
}
241241

242-
private string GetTransparencyTitle(int id)
242+
private string GetTransparencyTitle(int id) => id switch
243243
{
244-
switch (id)
245-
{
246-
case MenuItemId.SC_TRANS_00: return "0%" + GetTitle("trans_opaque", null, false);
247-
case MenuItemId.SC_TRANS_10: return "10%";
248-
case MenuItemId.SC_TRANS_20: return "20%";
249-
case MenuItemId.SC_TRANS_30: return "30%";
250-
case MenuItemId.SC_TRANS_40: return "40%";
251-
case MenuItemId.SC_TRANS_50: return "50%";
252-
case MenuItemId.SC_TRANS_60: return "60%";
253-
case MenuItemId.SC_TRANS_70: return "70%";
254-
case MenuItemId.SC_TRANS_80: return "80%";
255-
case MenuItemId.SC_TRANS_90: return "90%";
256-
case MenuItemId.SC_TRANS_100: return "100%" + GetTitle("trans_invisible", null, false);
257-
default: return null;
258-
}
259-
}
244+
MenuItemId.SC_TRANS_00 => "0%" + GetTitle("trans_opaque", null, false),
245+
MenuItemId.SC_TRANS_10 => "10%",
246+
MenuItemId.SC_TRANS_20 => "20%",
247+
MenuItemId.SC_TRANS_30 => "30%",
248+
MenuItemId.SC_TRANS_40 => "40%",
249+
MenuItemId.SC_TRANS_50 => "50%",
250+
MenuItemId.SC_TRANS_60 => "60%",
251+
MenuItemId.SC_TRANS_70 => "70%",
252+
MenuItemId.SC_TRANS_80 => "80%",
253+
MenuItemId.SC_TRANS_90 => "90%",
254+
MenuItemId.SC_TRANS_100 => "100%" + GetTitle("trans_invisible", null, false),
255+
_ => null
256+
};
260257

261258
private string GetTitle(string name, string title = null, bool showHotKey = true)
262259
{

SmartSystemMenu/Utils/AssemblyUtils.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static string AssemblyProductVersion
4141
get
4242
{
4343
var version = Assembly.GetExecutingAssembly().GetName().Version;
44-
return string.Format("{0}.{1}.{2}", version.Major, version.Minor, version.Build);
44+
return $"{version.Major}.{version.Minor}.{version.Build}";
4545
}
4646
}
4747

0 commit comments

Comments
 (0)