博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
01-C#入门(函数一)
阅读量:6617 次
发布时间:2019-06-25

本文共 2081 字,大约阅读时间需要 6 分钟。

只有在动手写代码的时候,才能真正理解到代码的逻辑思想,所以,开始写代码吧。

函数的意义:降低相同功能的代码重复编写,提高重复代码的维护效率。

  • 函数

一个文件由命令空间(namespace)、类(class)、函数(function)的结构组成。函数放在Class类中,使用static void HelloFunction() { }语句,函数命名一般开头字母用大写,调用函数时必须是函数名+括号:HelloFunction();。

void表示函数无返回值,如需返回值,则将void替换为返回的值类型,使用return结束函数并返回值给调用代码。另外,return可存在于void声明的函数中,例如:return;(用来退出函数,不能有值)。

参数指定:int i, string myStr,还可以使用params指定参数数组,必须放在参数列表的最后位置。参数传递分值传递和引用传递,引用传递(声明、调用参数时添加ref关键字),函数对参数的修改会修改传入变量本身的值,例如:

static void  DoubleInt(ref int refInt)        {            refInt *= 2;            Console.WriteLine("ref 函数内的值:{0}", refInt);        }        static void Main(string[] args)        {            //ref 引用传递,由于将修改参数值,引用的参数有两个条件:1)不能是常量 2)必须初始化;            int refVal = 10;            Console.WriteLine("ref 前变量的值:{0}", refVal);            DoubleInt(ref refVal);            Console.WriteLine("ref 参数值结果:{0}", refVal);        }
  • 变量的作用域

不同函数中声明的变量不能在其它函数中直接访问,需使用参数的方式。另外,可在类中声明变量,一样使用static的方式,如与函数内的变量重名,需使用Program(类名).myStr访问,如直接使用myStr会屏蔽全局变量。

还需要注意的是语句块也会影响变量的作用域,例如for(int i = 1),这个i只能在for循环中(嵌套其中的语句)使用,跳出循环后,变量i就不能使用了。

对全局变量的使用,书上持保留意见,建议在函数间使用参数传递的方式,这样可以比较直观地看出变量的变化。

  • main()入口函数

执行C#程序等同于执行main()函数,main()函数执行完毕,程序执行过程就结束了。main函数可以返回int(替换void)值,表示程序如何退出,后面看看怎么用的。另外,最有意思的就是参数string[] args,用来做DOS程序很直观:

static void Main(string[] args)        {            Console.WriteLine("参数长度:{0}", args.Length);            foreach (string myArg in args)            {                Console.WriteLine("*) {0}", myArg);            }        }

可通过配置项目属性:调试 - 启动选项 - 命令行参数,给args赋值,参数以空格隔开,如字符串有空格,则用引号包围起来。可以试试在DOS下使用,像DOS命令一样增加参数。

  • 结构函数

可以在结构中声明函数,声明时不使用static,而不是public,应该是可访问性方面的需要(书中提到后面会详述):

struct customerName    {        public string firstName, lastName;        public string cusName()        {            return firstName + lastName;        }    }

使用时就可以这样:customerName.firstName = "水手"、customerName.cusName(),有点面向对象的意思了,呵呵。

  • 结语

以前学习的时候,可能在知道命令行程序“原来是这样做出来的”,然后就没心情学下去了,然后就自以为是地去折腾命令行程序,结果又做不出个所以然来,慢慢地就失去了学习的兴趣,结果就:半途而废。

SO,现在要淡定~~~虽然知道了怎么做,但是要想做出一个真正能用的工具,不是学点新知识就能行的,做出真正可以用的工具是一个过程,一个不断迭代的过程。

转载于:https://www.cnblogs.com/sfrost/p/3671089.html

你可能感兴趣的文章
SSM+Maven+IDEA增删改查
查看>>
2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165318
查看>>
mysql 中 replace into 与 insert into on duplicate key update 的使用和不同点
查看>>
va_list用法
查看>>
「PKUSC2018」星际穿越
查看>>
svn 常用命令
查看>>
微信小程序开发模板消息的时候 出现 errcode: 41028, errmsg: "invalid form id hint:
查看>>
2001年日语能力考试二级真题及答案
查看>>
Hierarchyviewer定位Android图片资源的研究
查看>>
Swing中支持自动换行的WrapLayout
查看>>
研究base64_encode的算法
查看>>
web开发 虚拟目录映射
查看>>
几种常见图片文件格式的优缺点,以及不同的文件格式对Web应用程序性能的影响...
查看>>
NOIP 2008 传纸条(洛谷P1006,动态规划递推,滚动数组)
查看>>
创建、删除swap分区
查看>>
java链式编程设计
查看>>
简短input、form代码
查看>>
移动端页面布局
查看>>
Linux系统的组成
查看>>
FUNCS.H中的函数声明
查看>>