我的网址中的问号名称是什么?

lan*_*nce 16 .net refactoring naming-conventions

http://example.com/foo.aspx?foo=bar

我正在重构并且需要命名常量,该常量只包含该字符串的问号字符.我不确定最好给这个变量命名,因为我从来不知道该问号的正确名称是什么.

我该怎么命名常数?或者...... .NET中有什么东西是更明智的选择(内置的东西,其值已经是问号 - 或者在给出名称/值对集合的情况下为我自动构建查询字符串)?

Kel*_*tex 16

在本文档中,它被称为"问号"(包括连字符)(http://www.ietf.org/rfc/rfc2396.txt - 向下滚动到3.2权限组件).

我同意这是一个坏名字.散列(#)称为"片段标识符"(向下滚动到4.1).所以也许它应该被称为"查询标识符".


Joe*_*oey 9

URI中,层次结构和查询部分之间的分隔符始终是一个问号,那么为什么要将它拉入常量?

可能的名字:

  • QuerySeparator
  • QueryStartCharacter
  • QuestionMark
  • CurlyThingWithDotBelow

  • "为什么把它拉成常量?":我试图避免在我的代码中有两个或多个位置的任何一个值,特别是在字符串中.例外(/真正/不会改变的事情)很少,以至于当我编码时,在该实践中没有例外是相当合理的.通常,我的代码中没有自由格式字符串.如果它是一个字符串,则它位于常量,资源文件或配置文件中.这是一个可以说是不合理的极端,它在保持代码清洁方面非常有效. (3认同)
  • 嗯,为了处理像URI这样的东西我可以想象严格遵守这个可能会降低可读性.至少每个人都知道字符``/`,`?`和`#`,你会在某个地方看到它们.如果将它们命名为"HierarchyIdentifier","QueryIdentifier"和"FragmentIdentifier",那么它可能不会立即显示出来的情况.对于真正永远不会改变的字符串或字符文字,我认为这不是最好的主意. (3认同)

Sco*_*son 7

没有必要说出这个..NET有一个UriBuilder类,可以帮助您构建URL.查看这篇文章,了解它是如何工作的,并使其更直观:

http://codeidol.com/csharp/csharpckbk2/Web/Using-the-UriBuilder-Class/