gpt4 book ai didi

vb.net - 验证字符串不包含已知值之外的值 [VB.NET]

转载 作者:行者123 更新时间:2023-12-02 05:45:13 25 4
gpt4 key购买 nike

我正在尝试验证字符串是否仅包含已知值。在这种情况下,我需要确保它仅包含“Shift”、“Control”或“Alt”,但不一定包含所有这些。例如,这些应该是 true:“Shift + P”、“Shift + Control + H”、“Alt + U;但这些不应该是:“Other + P”、“Shift + Fake + Y”、“Unknown + Shift” + E”等

这是我尝试使用的代码:

If Not shortcut.Contains("Shift") Or Not shortcut.Contains("Control") Or Not shortcut.Contains("Alt") Then
MessageBox.Show("Invalid")
End If

我很难理解执行此操作所需的逻辑。我假设有一个逻辑运算符可以做到这一点?

最佳答案

我认为您不应该将字符串用于此目的。您需要一种可以表示热键组合的数据类型,该组合由一个“普通”键和一组修饰符(Alt、Control、Shift)组成,每个修饰符都可以打开或关闭。开/关修饰符可以由带有标志的枚举来表示,并且“正常”键可以由单独的枚举来表示。这两个枚举都可以包含在一个类中。

System.Windows.Forms.Keys枚举可以用作两个枚举。您可以存储两个数值(一个用于修饰符,一个用于“正常”键) - 底层枚举值 - 并且它们将代表组合。无需存储字符串。

如果您确实使用字符串来实现此目的,则需要更好地定义约束。您的规则没有指定“Shift + Other”如何无效,但“Shift + F”无效。无论如何,解决这个问题的一种方法是用“+”分隔字符串(假设这始终是分隔符),然后将每个部分与有效值列表进行比较,该列表显然包含“Shift”、“Alt”、“Control”和所有单个字母。

关于vb.net - 验证字符串不包含已知值之外的值 [VB.NET],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4295905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com