CodeGo.net>如何只允许数字,点和信号?

CodeGo.net>如何只允许数字,点和信号?,第1张

概述我这个班只强迫数字字符publicclassBsnValidationTriggerAction:TriggerAction<Entry>{privatestring_prevValue=string.Empty;protectedoverridevoidInvoke(Entryentry){intn;varisNumeric=int.TryParse(entry.Text,outn)

我这个班只强迫数字字符

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>如何只允许数字,点和信号?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1092111.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存