Constexpr как ключевое слово в C#
Существует ли constexpr как функциональность/синтаксис (который может быть использован во время компиляции в функциях на C++), доступных в C#?
в C++ я могу иметь функцию (например, Фибоначчи), как показано ниже:
constexpr int Fibonacci(int n) { //cout << "Executed Fib" << endl; switch (n) { case 0: return 0; case 1: return 1; default: return Fibonacci(n - 1) + Fibonacci(n - 2); } }
и я могу проверить в основном, чтобы убедиться, что функция правильна, сделав что-то вроде:
int main() { static_assert(Fibonacci(5) == 7, "Bad Program"); ///... }
Это означает, что мне не нужно ждать времени выполнения, чтобы оценить, будет ли работать функция Фибоначчи. Это похоже на простой тест во время компиляции. Я спрашиваю, Могу ли я сделать что-то подобное в C#.
Что я уже пробовал:
Я гуглю для этого. Обнаружил, что кто-то в quora упомянул java, но этого не хватает.
https://www.quora.com/What-is-the-counterpart-to-the-C++-constexpr-clause-in-languages-like-Java-or-C[^]
ZurdoDev
в c# есть константы, но чего именно вы хотите достичь?
Benktesh Sharma
в C++ я могу иметь функцию (например, Фибоначчи), как показано ниже:
constexpr int Fibonacci(int n) {
//соиь <&ЛТ; "исполнен привирать" на << епси;
переключатель (n) {
случай 0: возврат 0;
случай 1: возвращение 1;
по умолчанию:
возврат Фибоначчи(n - 1) + Фибоначчи(n - 2);
}
}
и я могу проверить в основном, чтобы убедиться, что функция правильна, сделав что-то вроде:
тап_п()
{
static_assert(Fibonacci(5) == 7, "плохая программа");
///...
}
Это означает, что мне не нужно ждать времени выполнения, чтобы оценить, будет ли работать функция Фибоначчи. Это похоже на простой тест во время компиляции. Я спрашиваю, Могу ли я сделать что-то подобное в C#.
Patrice T
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.
Benktesh Sharma
Спасибо. Я обновил вопрос.