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函数,执行此函数
//这样做的好处:可以灵活变化,给什么参数用什么方法
}