Есть ли способ вызывать метод периодически символическим способом? - PullRequest
2 голосов
/ 16 марта 2011

Рассмотрим два повторяющихся метода, поздние часы, сложный код.Короче говоря, эти две функции выглядят так:

void foo(int x)
{
  ... foo(x);
}

void bar(int x)
{
  ... foo(x); // oops, I meant "bar"
}

Я много раз хотел (и я все еще хочу) иметь какой-нибудь символический вызов, такой как «self», поэтому я мог переписать его так:1004 *

void foo(int x)
{
  ... self(x);
}

void bar(int x)
{
  ... self(x); // great! this is what i meant --> bar
}

Пока единственное, что я могу придумать, это написать общую функцию "self", которая при вызове проверяет стек, получает вызывающего и вызывает его.Однако было бы невозможно использовать его с наследованием:

void inherited(int x)
{
   base.self(x);
}

Большое спасибо за ваши комментарии / идеи / и т.д .: -)

Ответы [ 2 ]

0 голосов
/ 16 марта 2011

Используйте F #;)

(для этого требуются функции, помеченные как rec, если они рекурсируют внутри себя, и вам необходимо "and" взаимно рекурсивных функций вместе - сделать ваши ошибки ошибкой компилятора.)

0 голосов
/ 16 марта 2011

Уделять больше внимания при написании кода?Я не совсем понимаю, почему вы этого хотите, но, может быть, я что-то упускаю.

Короче говоря, я не думаю, что вы можете сделать это без размышлений, и в этот момент это будет излишним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...