Я приведу пример, так как я не уверен, правильно ли я задаю вопрос (английский не является моим основным языком, плюс я все еще изучаю C #).
Я начал изучать Project Euler и решил создать приложение, которое отслеживало бы мои результаты и проверяло мои маленькие знания C #.
В определенном классе у меня есть статические функции, которые используются для решения каждой из проблем.
static class Answers()
{
public static string A1(){...}
public static string A2(){...}
public static string A3(){...}
//it goes on
}
Проблемные объекты будут создаваться следующим образом (определение класса проблемы и создание объекта во время выполнения).
class Problem
{
public string Description;
public Solution SolutionFinder;
public Problem(string Desc, Solution Solver)
{
this.Description = Desc;
this.SolutionFinder = Solver;
}
public delegate string Solution();
public string SolveProblem()
{
return SolutionFinder.Invoke();
}
}
Это мой код создания формы:
{
...
List<Problem> Euler = new List<Problem>();
Euler.Add(new Problem("Find the sum of all the multiples of 3 or 5 below 1000.", Answers.A1));
Euler.Add(new Problem("By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.", Answers.A2));
Euler.Add(new Problem("What is the largest prime factor of the number 600851475143 ?", Answers.A3));
...
}
Я заставил классы и даже делегатов работать правильно, и я в восторге от этого. Тогда я наконец решил показать все это в форме. Я пытаюсь показать следующее: описание проблемы (это сделано) и код для каждого метода (независимо от того, находится ли он внутри A1, A2 и т. Д.) Всякий раз, когда я решаю проблему, используя свою форму.
Это ясно? Просто я хочу, чтобы моя форма показала результат, и как Я получил решение для каждой проблемы, но без необходимости перепечатывать содержимое каждого метода только для отображения - методы уже есть.
И, пожалуйста, не обращайте внимания на грязный код и чрезмерное использование публичных участников: я понимаю, что это плохая практика, но сейчас я просто пытаюсь пройти через этот личный проект, и я считаю, что это нормально, так как здесь это всего лишь небольшой опыт обучения.
Спасибо.
[EDIT]
Формат, который я ищу:
void UpdateForm(int Current)
{
Problem CurrentProblem = Euler[Current-1];
string Desc = CurrentProblem.Description;
string Code = CurrentProblem.SolutionFinder.Method.ReturnType.Name;
//I got this far, but I need to display more than just the name of the method!
...
}
Для уточнения
Учитывая метод:
public static string A1() {
var answer = 1 + 1;
return answer.ToString();
}
Можно ли получить следующие строки в строке ..?
var answer = 1 + 1;
return answer.ToString();