huozhehome键 把光标迅速移到最前面。end键是最后面
ctrl x剪切
- class Program
- {
- int res = 0;
- static void Main(string[] args)
- {
- Program c = new Program();
- int b = c.F(40);//C#对象对于引用非静态字段、方法或属性是必需的
- //非静态类的方法不能直接调用,要创建类的对象
- Console.WriteLine(b);
- }
- public int F(int n)
- {
- if (n == 0)
- return 2;
- if (n == 1)
- return 3;
- res = F(n - 1) + F(n - 2);
- return res;
- }
- }
- static int F1(int n)
- {
- if (n == 1)
- return 1;
- return n * F1(n - 1);
- }
或者这样,写成static模式就可以直接调用
- class Program
- {
-
- static double Multiply(double param1,double param2)//函数体
- {
- return param1 * param2;
- }
-
- static double Divide(double param1,double param2)
- {
- return param1 / param2;
- }
-
- static void Test()
- {
- Console.WriteLine("Test");
- }
-
- delegate double MyDelegate(double param1, double param2);
- //定义一个委托
- // 委托关键字 返回值类型 委托名 (参数列表(名字无所谓,类型一样就行))
- delegate void MyDelegate2();//对应于test函数的委托声明
-
- static void Main(string[] args)
- {
- //Console.WriteLine(Multiply(2.3, 2));
- //Console.WriteLine(Divide(4.5, 3));
-
- MyDelegate delegate1; //一个变量
- MyDelegate2 delegate2;
-
- delegate1 = Multiply;
- //指向了一个函数引用
- //用委托变量指向函数(所指函数的返回值类型与参数列表类型要于他一样)
- delegate1 = Divide;
-
- //delegate1 = Test;
- delegate2 = Test;
-
- Console.WriteLine(delegate1(2, 4));
- //这个委托就可以当作函数来使用了
- delegate2();
- }
- }
委托
- delegate void OnDieDelegate();
- static void Play(OnDieDelegate onDie)//声明委托变量作为参数给play
- {
- Console.WriteLine("做任务");
- Console.WriteLine("玩家正在战斗");
- Console.WriteLine("死亡");
- //
- if (onDie != null)//判断委托参数是否为空,空会报错
- onDie();//预留一个委托,方便以后操作
- }
- static void ShowDieUI()
- {
- Console.WriteLine("显示游戏死亡后的UI");
- Console.WriteLine("返回首页UI");
- }
- static void Main(string[] args)
- {
- // A主角
- // BUI 菜单
- Play(null);
- //play(ShowDieUI())此时委托指向ShowDieUI函数,执行此函数
- //这样做的好处:可以灵活变化,给什么参数用什么方法
- }