命名空间中的特殊字符

时间:2012-05-10 17:50:18

标签: c# .net visual-studio namespaces .net-assembly

我正在考虑在自定义框架的命名空间中使用带有变音标记的字符(例如,ō)。这个想法已经成为区分产品的一种方式,但我想确定这不是一个坏主意,如果有任何关于它的东西会在稍后再次出现。我没有看到在我的搜索中使用特殊字符的命名空间的其他示例,也没有关于此主题的任何类似讨论,这让我暂停继续沿着这条路走。

我最初也在考虑用变音符号命名程序集,但我遇到的第一个showstopper是试图对程序集进行数字签名。我无法在命令提示符中显示特殊字符,因此我收到了无效输入错误。也许还有另一种解决方法吗?

我意识到,它使得在Visual Studio中输入命名空间更具挑战性。然而,我并不认为这是一个主要问题,因为角色将接近我正在使用的词的末尾,这个词将是相当独特的,并且使用IntelliSense这不应该是一个大问题。

考虑以下示例,包含在程序集Macron.dll中:

namespace Macrōn.Library
{
    public class MyLibrary
    {
        public string MyProperty { get; set; }
    }
}

生成和使用此Macron.dll似乎没有问题,并且没有区分此示例Macrōn.Library命名空间的问题。文件,文件夹,项目&解决方案名称Macrōn似乎没有引起任何问题,并且所有内容似乎与源代码控制都没有任何问题。

在程序集和命名空间中使用变音符号时,我缺少任何其他注意事项或事项?有关绕过我的问题签署大会的任何想法?这种方法是否会失败?是否真的不值得实施,因为它可能令人困惑或难以/模糊使用?

这将会转化为很多工作,以便稍后撤消,所以我想知道在我深入研究之前我是否在脚下拍摄自己。

感谢。

2 个答案:

答案 0 :(得分:7)

  

我想确定这不是一个坏主意,如果有任何关于它的东西会在稍后再回来咬我。

有效。许多混淆器改变名称空间/类型以具有unicode字符,其中一些甚至是不可打印的,以使逆向工程更加困难。

话虽如此,如果这是其他人会消费的公共框架,我会劝阻它。这将迫使使用命名空间的任何人将其源文件保存为Unicode / UTF8,如果不这样做,则ō字符可能会被?替换。然后就不再编译了。

阿列克谢也发表了非常好的评论。我不知道如何键入ō字符而不是复制和粘贴它。这肯定会减慢我的速度。

答案 1 :(得分:2)

我想添加到vcsjones的答案,不是每个人都使用Visual Studio,所以你不应该依赖intellisense来使任何人都更容易。

  

我发现其中的一个问题就是它会输入命名空间   Visual Studio更具挑战性。我不认为这是一个重大问题,   但是,因为角色将接近我的结尾   使用,这个词将是相当独特的,并与智能感知这一点   不应该是一个太大的问题

如果我不得不解决这个问题,我会非常恼火地使用别人的图书馆。