В настоящее время я борюсь с проблемой "волшебные струны":
public class MyDataField
{
// class definition
}
// exuecuted method
public void SwitchMultipleDataFields()
{
var myField = new MyDataField();
switch(myField.GetType().ToString())
{
// only case, which works
case "MyDataField":
// case operations
break;
// other option:
case typeof(MyDataField).ToString():
// case operations
break;
// other cases of other FieldTypes
}
}
Теперь я получаю сообщение об ошибке, которое я написал в заголовке моей ветки. Я думаю, проблема в том, что эта строка не является константой в то время как "время некомпиляции". Таким образом, единственный возможный способ задать переключение это через явное определение значения этой строки регистра. Моя проблема только в том, что я не получаю ошибку компиляции в случае, если я переименую класс MyDataField
. Так что 90% этих классов в любом случае являются общими. Они обрабатываются в default
оператора switch. Нет ли другого способа, кроме явного определения значения значения дела?
Пожалуйста, не спорьте о смысле этого метода. Я только что написал это, чтобы проиллюстрировать мою проблему более простым способом