#c# #class #dictionary #object #compiler-errors
#c# #класс #словарь #объект #ошибки компилятора
Вопрос:
Пытаюсь перефразировать и решить:
namespace Timing_Designer
{
public partial class TD : Form
{
Dictionary<string, dynamic> dictSignals = new Dictionary<string, dynamic>();
…
switch (partType)
{
case "Clocks":
Clocks tClass = new Clocks();
dictSignals.Add(signalName, tClass);
object currClass = dictSignals[signalName];
txtExceptions.Text = currClass.ToString();
List<string> myParams = currClass.parameters; <--- Error line
break;
default:
// Need to make this a prompt!
txtExceptions.Text = "No Signal Name: "" signalName " "Foundrnrn";
return;
}
Получение этой ошибки:
Ошибка CS1061 ‘object’ не содержит определения для ‘parameters’ и не удалось найти доступный метод расширения ‘parameters’, принимающий первый аргумент типа ‘object’ (вам не хватает директивы using или ссылки на сборку?)
Если я закомментирую строку списка, я не получу ошибок, что, как я предполагаю, указывает на то, что у меня есть словарная запись с именем ключа signalName.
txtExceptions.Текст гласит: Timing_Designer.Часы, которые, по-видимому, указывают на то, что я действительно загрузил копию класса Clocks в качестве экземпляра объекта в словарь.
Чего я не понимаю и не могу обойти, так это ошибку компилятора CS1061.
Это, должно быть, бросается мне в глаза!
Ответ №1:
То, что говорит вам компилятор, верно. object
действительно, у него нет вызываемого элемента parameters
. Следует ли вместо этого объявлять currClass
тип dynamic
?
Комментарии:
1. Спасибо! Я не был знаком с динамическим типом…