Если они являются объектами вашего класса, вы можете использовать:
this.GetType().GetProperty(fieldName).SetValue(this, value, null);
Поле в классе
this.GetType().GetField(fieldName).SetValue(this, value, null);
Возможно, вам придется изменить флаги привязки в зависимости от общего / частного статуса полей.
Если они являются просто локальными переменными для функции, как вы описали, тем не менее, я считаю, что вам может не повезти.
Гораздо предпочтительнее использовать тип данных, разработанный для такого использования, как словарь, и, возможно, вам следует подумать о замене существующих переменных свойствами, которые ссылаются на словарь. Например: string a { get { return myDictionary["a"]; } }
. Это может позволить вам сохранить обратную совместимость, не прибегая к рефлексии, которая действительно должна быть последним средством.