int entered_num = entered - 0;
Должно быть:
int entered_num = entered - '0';
Чтобы преобразовать '1'
в 1, вам необходимо вычесть «0» (символ, который мы используем для представления цифры ноль), а не 0 ( число ноль). Вычитание нуля ничего не делает.
Вы могли достигнуть эту информацию с помощью CLR, отлаживающего API, хотя это не будут простые несколько строки для извлечения его.
Я не думаю, что это возможно, можно получить метод и его параметры путем рассмотрения StackTrace.
System.Diagnostics.StackTrace sTrace = new System.Diagnostics.StackTrace(true);
for (Int32 frameCount = 0; frameCount < sTrace.FrameCount; frameCount++){
System.Diagnostics.StackFrame sFrame = sTrace.GetFrame(frameCount);
System.Reflection.MethodBase thisMethod = sFrame.GetMethod();
if (thisMethod == currentMethod){
if (frameCount + 1 <= sTrace.FrameCount){
System.Diagnostics.StackFrame prevFrame = sTrace.GetFrame(frameCount + 1);
System.Reflection.MethodBase prevMethod = prevFrame.GetMethod();
}
}
}
Отражение скажет Вам тип параметров, что метод имеет, но это не поможет обнаружить их значения во время какого-то конкретного вызова. Отражение ничего не говорит Вам о локальных переменных вообще.
Вам нужен вид API что использование отладчика для доступа к этому виду информации.
Я не знаю, как это - возможное отражение использования, но взгляд на использование переплетения. SpringFramework. Сеть позволяет Вам определять pointcuts, который может прервать вызовы метода. Другие, вероятно, делают это также.
Вот является ссылка на перехватчик "BeforeAdvice" http://www.springframework.net/docs/1.2.0-M1/reference/html/aop.html#d0e8139
Отражение не используется для получения информации от стека. Это читает блок.
Вы могли бы хотеть смотреть на StackTrace
http://msdn.microsoft.com/en-us/library/system.diagnostics.stacktrace.aspx
Хорошая статья здесь:
http://www.codeproject.com/KB/trace/customtracelistener.aspx
Ребята из secondlife приостанавливают скрипты и перемещают их между серверами. Это означает, что они должны фиксировать состояние запущенного сценария, включая значения переменных в стеке вызовов.
Их язык сценариев работает на моно, реализации среды выполнения .NET с открытым исходным кодом. Я сомневаюсь, что их решение применимо к обычной среде выполнения .NET, но видео презентации о том, как они это сделали (переход ко второй половине), все еще может быть интересным.