gpt4 book ai didi

vb.net - VB.NET中选项比较二进制/文本的优缺点

转载 作者:行者123 更新时间:2023-12-04 18:22:42 25 4
gpt4 key购买 nike

在VB.NET开发中标准化使用“选项比较文本”和“选项比较二进制”的利弊是什么?

- - 编辑 - -

仅提供一些背景知识,因为这似乎会有所帮助-我的开发团队发现,由于Option Strict OnOption Infer OnOption Explicit相对于替代品而言具有明显的优势,因此更易于标准化。我们尚未发现易于标准化的是“选项比较文本/二进制”,因为两者似乎各有利弊,不同的开发人员对此有不同的意见。双方的一些论据如下:

选项比较文本的一些优点/参数:

  • 通过在整个
  • 地方消除对 StringComparer.ToLower()调用和 StringComparison.OrdinalIgnoreCase的需要,减少了代码的冗长性
  • 数据需求很少与大小写有关,大多数数据库不区分大小写。进行数据比较时,您很少真正想要区分THISThisthis
  • 当您不必担心大小写时,某些特定的用例会更简单。例如,处理ASP.NET控制事件(其中命令作为字符串和大小写问题发送到代码后方)很难跟踪,因为编译器无法帮助您。以Select Case事件的<asp:repeater>语句为例。
  • 有关文本比较的许多问题都涉及国际化,而国际化通常与许多应用程序无关。
  • VB作为一种语言特别区分大小写,尽管Visual Studio通过至少强制使用大小写一致性来帮助您。 SQL也不区分大小写。字符串是唯一需要记住的地方,它突出了您在各处都担心它时通常​​不会注意到的尴尬之处。

  • Option Compare Binary的一些优点/参数:
  • C#与大多数其他语言一样以这种方式工作。具有替代行为有点出乎意料,而这种出乎意料的不好是在编程中。
  • 通过编译时生成的IL可以证明,“选项比较文本”对性能有轻微的影响。 Option Compare Binary没有该罚款。
  • 选项“比较文本”仅使字符串处理的某些部分不区分大小写。但是,它没有做到这一点,因此默认情况下字典索引之类的内容不区分大小写。因此,这并不像Option Compare Text真正做到的那样,因此您完全不必担心大小写。如果只能奏效,为什么还要麻烦?
  • 编程很困难。最好不要试图解决这个问题。担心弦套管是这笔交易的一部分。人类认识到THISThistHiS不同。当然,您的代码也应该-毕竟,它们并不是完全相同的字符串。

  • 所以我真的只是想知道是否还有其他考虑因素。

    -编辑2-

    如果我定义了对此的答案,也许会有所帮助。如果您可以指向任何更详尽地讨论这些问题的权威外部资源,或者指向可以为该主题提供指导的标准和最佳实践讨论或书籍,那肯定会有用。

    最佳答案

    使用Option Compare Text,在比较字符串时无需担心大小写。这可能是一个很大的好处,并且避免将所有内容都转换为小写(或大写)以比较字符串相等性。

    发挥作用的另一个地方是字符串的排序。 Option Compare Text的排序类似于Windows中的文件列表,但是Option Compare Binary的排序类似于Unix文件列表(所有大写的文件名都出现在小写的文件名之前)。

    更新

    阅读注释和其他答案,再想一想之后,我想说Option Compare Binary是从与.Net Framework其余部分保持一致的角度出发的方法。如果不管Option Compare设置如何,字典键等都区分大小写,那么默认情况下,在整个代码中使用二进制比较就是一致的。然后,您需要担心的是,对于特定的比较,是否需要区分大小写并为此编写代码。

    如果使用Option Compare Text,则不仅需要担心是否需要进行特定的比较以区分大小写(不区分大小写),还需要了解当前上下文中的默认行为。

    然后,它成为一个论点,而不是与其他语言保持一致,而是与您要开发的框架保持一致。

    关于vb.net - VB.NET中选项比较二进制/文本的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6433921/

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