Detecting illegal characters efficiently

Instead of wasting lots of time creating a string from a char array,
creating a string from another char array, concatenating them both into
a new string, and casting the keychar to a string to see if the string
contains it, make the operation natural and very efficient by creating a
new char array that has both invalid characters and making sure the
illegal character array does not contain the element.
This commit is contained in:
yankejustin 2015-05-24 00:38:58 -04:00
parent f5d671d93a
commit 94e50641cb
1 changed files with 9 additions and 10 deletions

View File

@ -1,5 +1,6 @@
using System;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using xServer.Core.Build;
@ -20,8 +21,7 @@ namespace xServer.Forms
private void HasChanged()
{
if (_loadedProfile && !_changed)
_changed = true;
_changed = (_loadedProfile && !_changed);
}
private void UpdateControlStates()
@ -137,22 +137,21 @@ namespace xServer.Forms
private void txtDelay_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
e.Handled = true;
e.Handled = (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar));
}
private void txtInstallname_KeyPress(object sender, KeyPressEventArgs e)
{
string illegal = new string(Path.GetInvalidPathChars()) + new string(Path.GetInvalidFileNameChars());
if ((e.KeyChar == '\\' || illegal.Contains(e.KeyChar.ToString())) && !char.IsControl(e.KeyChar))
e.Handled = true;
char[] illegal = Path.GetInvalidPathChars().Union(Path.GetInvalidFileNameChars()).ToArray();
e.Handled = ((e.KeyChar == '\\' || illegal.Any(illegalChar => (illegalChar == e.KeyChar))) && !char.IsControl(e.KeyChar));
}
private void txtInstallsub_KeyPress(object sender, KeyPressEventArgs e)
{
string illegal = new string(Path.GetInvalidPathChars()) + new string(Path.GetInvalidFileNameChars());
if ((e.KeyChar == '\\' || illegal.Contains(e.KeyChar.ToString())) && !char.IsControl(e.KeyChar))
e.Handled = true;
char[] illegal = Path.GetInvalidPathChars().Union(Path.GetInvalidFileNameChars()).ToArray();
e.Handled = ((e.KeyChar == '\\' || illegal.Any(illegalChar => (illegalChar == e.KeyChar))) && !char.IsControl(e.KeyChar));
}
private void txtInstallname_TextChanged(object sender, EventArgs e)