Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net不支持非Ascii字符?_.net_Ascii_Naming - Fatal编程技术网

.net不支持非Ascii字符?

.net不支持非Ascii字符?,.net,ascii,naming,.net,Ascii,Naming,当我在类名中添加一个带有非Ascii字符的类时,它会从类名中删除非Ascii字符,当直接添加到类中时,它会抱怨非Ascii字符 类名和变量名中不支持非ASCII字符吗?您可能需要使用支持您希望在类名中包含的字符的编码来保存文件: 单击文件->另存为 单击“保存”按钮旁边的小箭头,然后选择“使用编码保存…”。。。 然而,拥有需要扩展编码的类名感觉像是自讨苦吃,但这只是我得到的一种感觉;实际上,您对它没有任何经验。您可能需要使用支持您希望在类名中包含的字符的编码来保存文件: 单击文件->另存为 单击

当我在类名中添加一个带有非Ascii字符的类时,它会从类名中删除非Ascii字符,当直接添加到类中时,它会抱怨非Ascii字符


类名和变量名中不支持非ASCII字符吗?

您可能需要使用支持您希望在类名中包含的字符的编码来保存文件:

单击文件->另存为 单击“保存”按钮旁边的小箭头,然后选择“使用编码保存…”。。。
然而,拥有需要扩展编码的类名感觉像是自讨苦吃,但这只是我得到的一种感觉;实际上,您对它没有任何经验。

您可能需要使用支持您希望在类名中包含的字符的编码来保存文件:

单击文件->另存为 单击“保存”按钮旁边的小箭头,然后选择“使用编码保存…”。。。
然而,拥有需要扩展编码的类名感觉像是自讨苦吃,但这只是我得到的一种感觉;真的,我没有这方面的经验。

从中阅读第9.4.2节从中阅读第9.4.2节这是为我编译和运行的

public class 嗨世界
{
    public 嗨世界() {}

    public void Run()
    {
        System.Console.WriteLine("Hello, Unicode world.");
        System.Console.WriteLine("type= {0}", this.GetType().Name.ToString());
    }

    public static void Main(string[] args)
    {
        try
        {
            new 嗨世界()
                .Run();
        }
        catch (System.Exception exc1)
        {
            Console.WriteLine("Exception: {0}", exc1.ToString());
        }
    }
}

ps:我不知道这些字符是什么意思。

这是为我编译和运行的

public class 嗨世界
{
    public 嗨世界() {}

    public void Run()
    {
        System.Console.WriteLine("Hello, Unicode world.");
        System.Console.WriteLine("type= {0}", this.GetType().Name.ToString());
    }

    public static void Main(string[] args)
    {
        try
        {
            new 嗨世界()
                .Run();
        }
        catch (System.Exception exc1)
        {
            Console.WriteLine("Exception: {0}", exc1.ToString());
        }
    }
}


ps:我不知道这些字符是什么意思。

为了代码重用,我会坚持使用ASCII字符的名称,因为所有键盘都可以键入这些字符。是的,但在这里,我在运行时为用户创建一个由用户提供的名称的类,问题是,.net允许非ASCII,并且我可以允许用户提供非ASCII名称。如果您的用户是程序员,则他们习惯于ASCII限制。如果您的用户不是程序员,您不应该从他们的原始输入创建类名。@Vinay我想这是用于某种类型的运行时加载。如果你想处理非ascii字符,也许你需要一种不同的设计来简化。我有点难过,因为每个人似乎都说使用ascii。是的,我也希望所有的代码都是用英语编写的,但我们必须承认,并不是所有的代码都是用英语编写的。如果要在罗马化或ASCII化和本机字母表中的名称之间进行选择,我更喜欢后者——它对使用它的人来说更具可读性,而且如果您必须在不了解相关语言的情况下使用代码,通常更容易在字典中查找。为了代码重用,我会坚持使用ASCII字符的名称,因为所有键盘都可以键入它们。是的,但在这里,我在运行时为用户创建用户提供的名称的类,问题是,.net是否允许非ASCII名称,我是否允许用户提供非ASCII名称。如果您的用户是程序员,他们习惯于ASCII限制。如果您的用户不是程序员,您不应该从他们的原始输入创建类名。@Vinay我想这是用于某种类型的运行时加载。如果你想处理非ascii字符,也许你需要一种不同的设计来简化。我有点难过,因为每个人似乎都说使用ascii。是的,我也希望所有的代码都是用英语编写的,但我们必须承认,并不是所有的代码都是用英语编写的。如果要在罗马化或ASCII化与本地字母表中的名称之间进行选择,我更倾向于后者——这对使用它的人来说更容易阅读,如果你必须在不知道所讨论的语言的情况下使用代码,通常更容易查字典。@Fredrik,创建的文件sayŸÃÃÃüó.cs很好,但在类名中它是public class wieredName,而不是public classޤÃÃüó。@Vinay:ޤޤÃüó看起来很像损坏的Unicode。我想那是UTF-16LE,而真名应该是쎟쎶쎤쎼쎳 - 那是韩语,不,我不能告诉你那是什么意思。“它可能是UTF-8,但扩展到了ßöääó,我知道这是荒谬的。@Fredrik,创建的文件是说ޤÃÃÃÃÃÃÃÃÃÃÃó。cs很好,但在类名上它是公共类wieredName,而不是公共类wieredName。@Vinay:。我想那是UTF-16LE,而真名应该是쎟쎶쎤쎼쎳 - 那是韩语,不,我不能告诉你那是什么意思。它可能是UTF-8,但它扩展到了ßöäüó,我知道这是荒谬的。你有没有检查第二个。WriteLine。。。返回类型名称。但我在cmd.exe控制台中看不到它,它不是unicode。如果我将该行替换为MessageBox,`System.Windows.Forms.MessageBox.ShowString.Formattype={0},则this.GetType.Name.ToString;`,然后我看到了预期的类型名称。@Matthew:你不能按照控制台中第二条WriteLine显示的内容去做。计算机上的控制台设置不太可能为CJK做好准备,因为所使用的字体没有字符,并且没有字符
不会定义字体回退,因此无法显示字符。通过将其放入文件或WinForms控件中,您可以获得更准确的视图。@Michael:好的,ildasm如何?虽然这样可以。。。我绝对不会推荐它。你只是在自找麻烦。你有没有检查第二条写的是什么。。。返回类型名称。但我在cmd.exe控制台中看不到它,它不是unicode。如果我将该行替换为MessageBox,`System.Windows.Forms.MessageBox.ShowString.Formattype={0},则this.GetType.Name.ToString;`,然后我看到了预期的类型名称。@Matthew:你不能按照控制台中第二条WriteLine显示的内容去做。计算机上的控制台设置不太可能为CJK做好准备,因为使用的字体没有字符,并且没有定义字体回退,因此无法显示字符。通过将其放入文件或WinForms控件中,您可以获得更准确的视图。@Michael:好的,ildasm如何?虽然这样可以。。。我绝对不会推荐它。你只是在自找麻烦。