我这个班只强迫数字字符
public class BsnValIDationTriggerAction : TriggerAction<Entry>{ private string _prevValue = string.Empty; protected overrIDe voID Invoke(Entry entry) { int n; var isNumeric = int.TryParse(entry.Text, out n); if (!string.IsNullOrWhiteSpace(entry.Text) && (entry.Text.Length > 9 || !isNumeric)) { entry.Text = _prevValue; return; } _prevValue = entry.Text; }}
但是现在我需要知道如何实现此功能,使其仅允许数字,信号(-准确)和点…有人可以帮助我吗?
解决方法:
您可以使用decimal.TryParse方法.
var isDecimal = decimal.TryParse(entry.Text, out n);
此外,您不需要额外的支票
string.IsNullOrWhiteSpace(entry.Text)
如果entry.Text的值是上述函数返回的true,则decimal.TryParse将为该值返回false.
话虽如此,您的班级可以重构如下:
public class BsnValIDationTriggerAction : TriggerAction<Entry>{ private string _prevValue = string.Empty; protected overrIDe voID Invoke(Entry entry) { decimal n; var isDecimal = decimal.TryParse(entry.Text, out n); _prevValue = isDecimal ? entry.Text : _prevValue; }}
更新资料
TryParse方法的重载也将数字的style和format provider作为参数.
public static bool TryParse( string s, NumberStyles style, IFormatProvIDer provIDer, out decimal result)
您可以找到有关如何使用它的示例here.
总结以上是内存溢出为你收集整理的CodeGo.net>如何只允许数字,点和信号?全部内容,希望文章能够帮你解决CodeGo.net>如何只允许数字,点和信号?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)