使用 ArgumentException 时出现错误,调用程序集引用,这是什么?

Mar*_*ski 1 c#

using System;

namespace Exercise
{
    public abstract class Gun
    {
        public Gun(string name, int bullets)
        {
        }

        public string Name { get; set; }

        public int Bullets
        {
            get { return Bullets; }
            set 
            {
                if (value < 0)
                {
                    throw new Argument?xception("Bullets cannot be below 0");
                }
                else
                {
                    Bullets = value;
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我试图运行的代码。我已经检查过,框架是一样的,这是对类似问题的回答。我正在使用 VS 代码并下载了所有必要的扩展。你知道是什么导致了这个错误吗?

找不到类型或命名空间名称“Argument?xception”(您是否缺少 using 指令或程序集引用?)

Jon*_*eet 7

问题是您使用的“E”。它是U+0415,或“西里尔大写字母 ie”...而不是 ASCII 大写字母 E。

只需重新输入,E一切都会好起来的。

当您遇到像这样不太合理的错误时,如果您怀疑这可能是一个奇怪的字符问题(在这种情况下是不正确的字符,或者无法打印的字符),您可能需要使用我有的一个小实用程序在网页上 - 我的Unicode 浏览器。只需将文本(在本例中我复制了“Argument?xception”)粘贴到文本框中,然后查看它包含的字符。

你还应该考虑你是如何进入这种状态的——如果你能弄清楚你是如何在那里得到一个非 ASCII 字符的,那么你将来可能会避免它。