命名空间中的特殊字符

3
我正在考虑在自定义框架的命名空间中使用带有变音符号的字符(例如,ō)。这个想法是为了区分产品,但我想确保这不是一个坏主意,并且如果有任何关于它的问题,以后不会对我造成影响。在我的搜索中,我没有看到其他使用特殊字符的命名空间的示例,也没有类似的讨论,这让我暂停继续走这条路。
最初,我考虑为带有变音符号的程序集命名,但我遇到的第一个障碍是尝试为程序集进行数字签名。我无法在命令提示符中显示特殊字符,因此我收到了“没有有效输入”的错误。也许有另一种解决方法?
我意识到一个陷阱是,在Visual Studio中键入命名空间会更具挑战性。然而,我并不认为这是一个主要问题,因为这个字符将出现在我使用的单词的末尾,这个单词将非常独特,并且有了智能感知,这不应该是太大的问题。
请考虑以下示例,包含在程序集Macron.dll中:
namespace Macrōn.Library
{
    public class MyLibrary
    {
        public string MyProperty { get; set; }
    }
}

生成和使用此Macron.dll似乎没有任何问题,并且没有问题区分此示例Macrōn.Library命名空间。文件、文件夹、项目和解决方案的名称Macrōn似乎并不会引起任何问题,一切都能很好地与源代码控制保持一致。

在程序集和命名空间中使用变音符号时,还有其他需要考虑的事项或我忽略的事情吗?是否有什么方法可以解决签署程序集的问题?这种方法是否注定会失败?它真的没有实施的价值,因为可能会令人困惑或难以使用吗?

如果深入进行下去,这将变成很多撤消工作,因此我想知道是否存在自毁前途的风险。

谢谢。

2个回答

7
我想确认这不是一个坏主意,并且如果有任何关于它的事情会在以后回来咬我。这是有效的。许多混淆器更改命名空间/类型以具有unicode字符,其中一些甚至是不可打印的,以使反向工程更加困难。话虽如此,如果这是其他人将使用的公共框架,我会劝阻它。这将强制使用命名空间的任何人将其源文件保存为Unicode / UTF8,如果他们不这样做,则ō字符可能会被替换为?。然后它将无法编译。Alexei也发表了非常好的评论。除了复制和粘贴之外,我不知道如何键入ō字符。那肯定会减慢我的速度。

3
大多数人无法在代码和搜索引擎中键入它,更重要的是,Stackoverflow解析器无法正确处理这种名称 :)。 - Alexei Levenkov
谢谢,这正是我想要的见解。 - Scott Koland

2
我想补充vcsjones的答案,不是每个人都使用Visual Studio,所以你不应该依赖Intellisense来使这个过程更容易。
一个需要注意的问题是,在Visual Studio中输入命名空间会变得更加困难。然而,我并不认为这是一个主要问题,因为字符将出现在我正在使用的单词的末尾,这个单词将是相当独特的,通过IntelliSense,这不应该是太大的问题。
如果我必须绕过这个问题才能使用别人的库,我会非常恼火。

1
+1 表示“你不应该依赖智能感知来使这更容易”。 - vcsjones

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接