我想让这段代码更小
if (char.IsLetter(e.KeyChar) || e.KeyChar == ',' || e.KeyChar == '/' || e.KeyChar == ';' || e.KeyChar == '<' || e.KeyChar == '>')
{
e.Handled = true;
}
但我不知道怎么......请帮忙
由于
答案 0 :(得分:6)
如有人在评论中暗示,您可以使用Contains
。
char[] allowable = new [] { ',', '/', ';', '<', '>' };
if (char.IsLetter(e.KeyChar) || allowable.Contains(e.KeyChar))
{
e.Handled = true;
}
您可能希望在父类中创建该数组static readonly
。
正如丹尼斯在下面的评论中指出的那样,替代这一切的一个很好的选择可能是:
char[] allowable = new [] { ',', '/', ';', '<', '>' };
e.Handled = char.IsLetter(e.KeyChar) || allowable.Contains(e.KeyChar);
这肯定更短,但值得注意的是,这些并不完全是同义词。但是,假设您没有设置e.Handled
而没有调用return
的先决条件,那么它们在功能上是等效的。
答案 1 :(得分:0)
2行?
char[] allowableChars = new [] { ',', '/', ';', '<', '>' };
e.handled = (char.IsLetter(e.KeyChar) || allowableChars.Contains(e.KeyChar));