c# - 神秘号码18888888888888888

标签 c# .net wpf xaml

<分区>

我们的一位测试人员设法将 slider 绑定(bind)变量设置为 18888888888888888,该变量通常只能取 1-100 之间的值。 (我可以在保存到 xaml 文件的 View 模型中观察它。)这个数字有什么特别之处?

这里有一些细节。该应用程序有一个 slider ,它绑定(bind)到 View 模型中的一个可观察属性。通常,当应用程序保存工作区时,此 View 模型会使用 XamlServices.Save 一起保存。我的测试人员报告了一些尴尬的行为,加载该项目时 slider 的值显示 -214。我让他把文件发给我,保存的 xaml 中的值包含我的神秘号码。

我知道这是我的代码或其他一些库代码中的错误造成的。我希望把它钉下来。但是,正常的“垃圾”值不可能是这样的。当我用谷歌搜索时,我看到一些与编程无关的页面,这些页面以某种方式显示这个数字是在互联网历史中生成的(所以这不是我的猫做的)。简而言之,我试图弄清楚,首先如何创建这个数字,就像当您看到 INT_MAX + 1 时,如果您有足够的经验,您可以识别它(-2137483648 任何人?)。

最佳答案

假设开头的 1 是占位符——将 double 显示为 string 的错误。

我们有 16 个 8。 C# 中的 double 类型最多具有 16 个字节的精度。这可能表明 slider 显示试图显示某种类型的垃圾 double 值 8888888888888888 或 0x1000100010001000100010001000100010001000100010001000100010001000。

可能是测试人员导致double的值变成了某种NaN值。 (可能NaN是这样显示的)那肯定能解释字符串的长度。

此外,由于 slider 类显示的限制 数字,它可能应该读取 1x8888888888888888。垃圾进,垃圾出?

嗯,这是我的猜测。

关于c# - 神秘号码18888888888888888,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9209560/

相关文章:

c# - 在 ASP.Net Core 中为每个请求创建一次 EF Core 上下文

c# - lambda 相当于 collection.Count(predicate)

.net - 如何流式传输以编程方式执行的 ScriptBlock 的输出?

c# - 如何保存和使用应用程序的窗口大小?

c# - WPF XAML - 文本框的设计时间和可见性

c# - 如何确定 wpf datagrid 单元格是否处于编辑模式?

c# - 使用新的 DocuSign C# 客户端作废信封

javascript - 我在 mvc、LoadBooks、RequirementBooks 中有 2 个 View

C# 线程 : Console application in new thread is invisible

c# - DataItem=null on binding,找不到原因?