C# System.ExceptionArgument Неверное пространство имен?C#

Место общения программистов C#
Ответить
Anonymous
 C# System.ExceptionArgument Неверное пространство имен?

Сообщение Anonymous »

Для C# я пытаюсь скомпилировать Dictionary.cs из GitHub. Я пытаюсь настроить библиотеку Dictionary.
Я получаю различные ошибки, например:

Ошибка (активная) CS0234

Тип или имя пространства имен «IDictionaryDebugView» не существует в пространстве имен «System.Diagnostics» (вам не хватает ссылки на сборку?) DictionaryTest1 C:\Users\ Erik\source\repos\DictionaryTest1\DictionaryTest1\Dictionary.cs
Ошибка (активная) CS0103

Имя «ThrowHelper» не существует в текущем контексте DictionaryTest1 C:\Users\Erik\source\repos\DictionaryTest1\DictionaryTest1\Dictionary.cs
Ошибка (активная) CS0103

Имя «ExceptionArgument» не существует в текущем контексте DictionaryTest1 C:\Users\Erik\source\repos\DictionaryTest1\DictionaryTest1\Dictionary.cs>
Ошибка (активная) CS0103

Имя «NonRandomizedStringEqualityComparer» не существует в текущий контекст DictionaryTest1 C:\Users\Erik\source\repos\DictionaryTest1\DictionaryTest1\Dictionary.cs

Мой вопрос: как мне решить эту проблему? четыре ошибки, без необходимости загружать их исходный код (снова) и перекомпилировать эти библиотеки?
Не могу ли я вместо этого просто включить пространство имен или файлы DLL?
Я получил Dictionary.cs из: https://github.com/microsoft/references ... tionary.cs
Я только что скопировал Dictionary.cs в свой проект C# и скомпилировал его вместе с файлом program.cs и основным методом.
Я делаю это потому что у меня есть книга О'Рейли по программированию на C# 10, и я возюсь с примером кода класса Dictionary.
Это пример функции, которая имеет некоторые из этих ошибки:

Код: Выделить всё

public Dictionary(int capacity, IEqualityComparer? comparer)
{
if (capacity < 0)
{
ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.capacity);
}

if (capacity > 0)
{
Initialize(capacity);
}

// For reference types, we always want to store a comparer instance, either
// the one provided, or if one wasn't provided, the default (accessing
// EqualityComparer.Default with shared generics on every dictionary
// access can add measurable overhead).  For value types, if no comparer is
// provided, or if the default is provided, we'd prefer to use
// EqualityComparer.Default.Equals on every use, enabling the JIT to
// devirtualize and possibly inline the operation.
if (!typeof(TKey).IsValueType)
{
_comparer = comparer ?? EqualityComparer.Default;

// Special-case EqualityComparer.Default, StringComparer.Ordinal, and StringComparer.OrdinalIgnoreCase.
// We use a non-randomized comparer for improved perf, falling back to a randomized comparer if the
// hash buckets become unbalanced.
if (typeof(TKey) == typeof(string) &&
NonRandomizedStringEqualityComparer.GetStringComparer(_comparer!) is IEqualityComparer stringComparer)
{
_comparer = (IEqualityComparer)stringComparer;
}
}
else if (comparer is not null && // first check for null to avoid forcing default comparer instantiation unnecessarily
comparer != EqualityComparer.Default)
{
_comparer = comparer;
}
}
Для приведенного выше метода: ThrowHelper, ExceptionArgument и NonRandomizedStringEqualityComparer отображаются подчеркнутые красным ошибки IntelliSense.
Я не хочу компилировать эти три класса, а затем перекомпилировать недостающие ссылки в трех классах, которые я также скомпилировал. Это потому, что мне придется рекурсивно загружать и компилировать эти исходные файлы. Я не хочу, чтобы мне пришлось загружать около 100 исходных файлов, и я хочу иметь возможность устранять эти ошибки без необходимости делать это.


Подробнее здесь: https://stackoverflow.com/questions/791 ... -namespace
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»