【问题标题】:I am getting an error when using ArgumentException, calling for an assembly reference, what is this?使用 ArgumentException 时出现错误,调用程序集引用,这是什么?
【发布时间】:2020-10-11 07:43:54
【问题描述】:
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;
                }
            }
        }
    }
}

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

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

【问题讨论】:

  • 此文件顶部是否有using System 子句?
  • 是的,我把它放在最上面。这是我实现的唯一库。我应该添加其他库吗?

标签: c#


【解决方案1】:

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

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

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

您还应该考虑如何进入这种状态 - 如果您能弄清楚您是如何在该状态下得到一个非 ASCII 字符的,那么您将来也许可以避免这种情况。

【讨论】:

  • 我明白了,我不知道这种错误会导致这种情况,但我一直在粘贴来自 Athanasios 的 ArgumentException 的代码,而不是使用我自己的。看到你的回答后,我也重新输入了它,但它仍然不起作用。编辑:这是错误的。问题是性格。我很抱歉!
  • @MartinSvilenski:您的question 中的代码存在问题,并且从第一个版本开始就存在。我确定 Athanasios 只是复制/粘贴了 your 代码。尝试从此评论中复制/粘贴ArgumentException。如果直接重新键入会导致问题,则表明您可能需要更改键盘设置。
  • 编辑了我之前的评论,你是对的@JonSkeet
猜你喜欢
  • 1970-01-01
  • 2021-08-18
  • 1970-01-01
  • 1970-01-01
  • 2016-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多