赵老师,请问一个菜鸟问题:c#中,静态函数可以正确实现递归调用功能吗?静态函数自身调用参数无变化
答案:3 悬赏:80 手机版
解决时间 2021-02-01 01:41
- 提问者网友:凉末
- 2021-01-31 17:31
赵老师,请问一个菜鸟问题:c#中,静态函数可以正确实现递归调用功能吗?静态函数自身调用参数无变化
最佳答案
- 五星知识达人网友:白昼之月
- 2021-01-31 17:50
:c#中,静态函数可以正确实现递归调用功能吗?静态函数自身调用参数无变化
递归:在程序基本四元素中是不存在的.那么它到底属于什么?
先来给你解释一下这个问题.
递归其实最开始是程序员们为了方便自己写特殊的循环所使用.
最开始的初衷是实现例如∑ 等数学运算所衍生出的循环方式.
那么这么来看.你在一个循环中是否可以调用一个函数.问题只出在你的访问权限.
从您的描述中来看.
您想到的或者说担心的应该是所谓的变量值的存在时长或生命周期吧?
调用静态的函数或者类过程中,确实是要考虑到你的特殊全局变量.
为什么说特殊呢...因为他必须是静态的.例如你在A命名空间或者类 中去递归另外一个类或命名空间的静态函数.
担心的或者说区别只有一个.
非静态时,每次递归你可能需要NEW一个对象(当然如果你是全局对象则不考虑,此处我只给你描述极端化了..)
而静态则不需要.
所以要考虑目标类是否存在属性或字段.导致无法正常递归结果.
递归:在程序基本四元素中是不存在的.那么它到底属于什么?
先来给你解释一下这个问题.
递归其实最开始是程序员们为了方便自己写特殊的循环所使用.
最开始的初衷是实现例如∑ 等数学运算所衍生出的循环方式.
那么这么来看.你在一个循环中是否可以调用一个函数.问题只出在你的访问权限.
从您的描述中来看.
您想到的或者说担心的应该是所谓的变量值的存在时长或生命周期吧?
调用静态的函数或者类过程中,确实是要考虑到你的特殊全局变量.
为什么说特殊呢...因为他必须是静态的.例如你在A命名空间或者类 中去递归另外一个类或命名空间的静态函数.
担心的或者说区别只有一个.
非静态时,每次递归你可能需要NEW一个对象(当然如果你是全局对象则不考虑,此处我只给你描述极端化了..)
而静态则不需要.
所以要考虑目标类是否存在属性或字段.导致无法正常递归结果.
全部回答
- 1楼网友:污到你湿
- 2021-01-31 19:13
不管是什么函数只是一段代码,cpu执行的时候的运算过程中在寄存器上存储数据,和函数本身没什么关系,函数只是控制过程
- 2楼网友:胯下狙击手
- 2021-01-31 18:11
C# 中 有静态函数 也可以递归调用
static long jieCheng(int number) //阶乘
{
if(number==1)
return 1;
return number*jieCheng(number-1);
}
但是C#没有在参数中的静态变量 如下是错误的
static void M()
{
static int x=5;//错误
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯