Я пытаюсь вызвать конкретную переменную из объекта, используя строку, иначе говоря, как бы я мог эффективно это сделать,C#

Место общения программистов C#
Ответить
Anonymous
 Я пытаюсь вызвать конкретную переменную из объекта, используя строку, иначе говоря, как бы я мог эффективно это сделать,

Сообщение Anonymous »

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

public Dictionary inventory = new Dictionary();
public List itemNames;
public List islandTypes;

...

foreach(string item in itemNames)
{
if(inventory[item] != Null)
{
if(inventory[item] >= islandTypes[island].GetField(item))
{
inventory[item] -= islandTypes[island].GetField(item);
}
}
}
Это Unity C#, но я считаю, что этот вопрос применим ко всем вариантам использования C#. Я хочу иметь возможность находить переменную по имени элемента, например:

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

islandTypes[island].item
Основная предпосылка заключается в том, что я могу просто добавлять элементы в список «itemNames», и код должен автоматически проверять поля стоимости в списке «islandTypes».
Как я могу это сделать?
Извините, что этот вопрос не был достаточно ясным, я объясню немного больше, чтобы, надеюсь, помочь.
У меня есть определенные элементы, хранится в списке "itemNames", что при построении "острова" он будет использовать цикл для проверки каждого предмета в игре (каждого предмета в этом списке), а затем сравнивать этот предмет с его стоимостью как в инвентаре игрока, так и со стоимостью "острова", причем эта стоимость будет храниться в объекте острова с именем переменной, совпадающей с именем предмета. Таким образом, когда «остров» построен, количество предметов в инвентаре будет вычтено из стоимости острова.
Надеюсь, это поможет немного прояснить ситуацию. Я не уверен, насколько хорошо работают все эти вопросы на форумах, но я постараюсь научиться задавать вопросы лучше, чтобы не создавать проблем!

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

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

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

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

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

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