摘要

  方法的总结:其中包含方法的解释、方法参数、方法返回值,方法重载,out、ref、in的用法
一、C#面向过程方面的总结
  顺序结构:程序按照程序代码的顺序执行
  分支结构:if-else、switch-case
  循环结构:while、do-while、for、foreach
  跳转语句:break、continue

二、类和类成员访问级别
  private,protected,internal,public
  具体见另一篇文章:https://www.cnblogs.com/yezongjie/p/20181121AccessRights.html

三、方法
  1.方法的解释

    C语言叫函数,没有方法之说
    C#中叫做方法,有些说法说是把静态的方法叫做函数
    注:多次使用的代码,就可以提取成一个方法,然后可以多次使用(达到复用的效果,也可以是封装)
      方法有输入参数,有输出参数,并且都是可选的

  2.方法功能
    用来复用代码的,当我们在一个过程中反复的写了同样的代码,那一般情况下,我们可以把需要重复写的代码定义在一个方法中。用的时候只需要调用就行了。
  3.定义方法的语法
    [访问修饰符] [static] 返回值类型 方法名([参数])
    {
      方法体
    }
  4.注意点
    1.一般情况下,方法一般定义在类中
    2.方法没有返回值的话,返回值类型写void
    3.如果方法没有参数,后面的括号()不能省略,不管是定义还是调用都不能省略
  5.调用方法方式
    方法名();(如果方法是静态的方法,调用方式为:类名.方法名();)
    注:程序执行到调用方法的地方,会进入到方法内部,方法执行完毕会回到调用的地方,再往下继续执行。

四、变量
  变量的作用域是:在变量定义之后,直到语句块之前有效。
  注:一个变量一旦定义在方法外面,类的里面,就叫做类的字段,这个变量就可以被本类的所有方法所访问。但是要注意的是,静态方法只能访问静态字段(字段或方法前加了static修饰的叫做静态)

五、方法的参数(叫做形参)
  例:public static int AddFunction(int a)
  {
    a++;
    return a;
  }
  其中int a,叫做方法的参数(形参):参数用于接受调用方传入的数据
  方法的调用则必须给参数赋值,并且此参数可以在方法中使用。
  调用方法时,参数个数必须与定义的参数个数相同,且参数类型必须一致。

六、返回值
  例:int a = Convert.ToInt32("22");
    为什么方法前面能够定义一个变量收到方法的值,是因为在方法中使用了返回值
    只要在方法中返回了值,那么在调用方法中,前面就应该用一个变量来接受方法的返回值
  注意:一个方法只能有一个返回值!
     一旦一个方法有返回值,那么在这个方法中,就必须通过return语句返回一个值,并且这个值要与返回值类型时相同的
  语法:return 值;

七、方法的重载
  例子:
    Console.WriteLine();
    Console.WriteLine("aaa");
    Console.WriteLine(123);
    Console.WriteLine('a');
    输入参数不同,但是方法名称相同

  什么是方法的重载:
    在同一个类中(也可以是子类与父类),方法名相同,并且方法的参数个数或者是对应位置的参数类型不同,与返回值无关。

八、方法返回多个值(out)
  方法中普通的形参是输入参数。
  如果在参数类型前面加out,那么调用方法时,实参前面也必须加一个out,那么表明这个参数不是传入的,而是用来传出的。
  如果方法参数的类型前面有一个out,那么在调用的时候不能对其赋初始值。且方法在使用这个参数之前或者是方法结束之前,必须对这个参数进行赋值。(因为方法参数加了out之后,它就代表是一个输出参数)

  例如C#中封装好的int.TryParse(string s;out int result)方法,返回参数为一个bool类型,但是out int result也是一个返回值;

九、ref修饰方法的参数(表示是按引用传递)(传入的是地址)
  out用于传出值
  ref可以理解为是双向的,既可以传入,又可以传出

十、in
  in的作用:用来修饰方法的参数。in 指定此参数由引用传递,但只由调用方法读取(不能修改)。
  注:

    作为 in 参数传递的变量在方法调用中传递之前必须进行初始化。 但是,所调用的方法可能不会分配值或修改参数。
    较大的变量按引用传递,而不用花费资源再去copy一份,可以提升性能
    in修饰参数是可以重载函数的,但是out和ref不行
      重载规则见:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/in-parameter-modifier

十一、reflector工具
  reflector工具可以用来对程序进行反射,查看程序的源码,非常有用

C#基础知识总结(六)的更多相关文章

  1. Linux基础知识第六讲,远程管理ssh操作

    目录 Linux基础知识第六讲,远程管理ssh操作 一丶什么是SSH 1.什么是SSH 2.了解域名跟端口 二丶SSH命令以及远程连接linux进行维护 1.ssh命令格式 2.scp远程终端拷贝文件 ...

  2. Android学习之基础知识十六 — Android开发高级技巧的掌握

    一.全局获取Context的技巧 前面我们很多地方都使用到了Context,弹出Toast的时候.启动活动的时候.发送广播的时候.操作数据库的时候.使用通知的时候等等.或许目前来说我们并没有为得不到C ...

  3. python基础知识第六篇(知识点总结)

    ####################### 整理 ################# # 一.数字# int(..) # 二.字符串# replace(替换)/find/join/strip(移除 ...

  4. PyQt5 基础知识(六):展示控件

    目录 3. 展示控件 3.1 QLabel 3.1.1 描述 3.1.2 功能作用 3.1.2.1 基本功能 3.1.2.2 文本交互 3.1.2.3 内容操作 3.1.2.3.1 文本字符串 3.1 ...

  5. web前端基础知识-(六)Django基础

    上面我们已经知道Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Sessi ...

  6. web前端基础知识-(六)web框架

    一.web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:ut ...

  7. web前端基础知识-(六)jQuery-补

    一.JS正则 1.定义正则表达式 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串: 1)构造函数 var reg=new RegExp('< ...

  8. java基础知识(六)日期处理

    一.日期处理类 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年.月.日.小时.分钟和秒值.它也允许格式化和解析日期字符串.不过,这些函数的 API 不易于实现国际化.从 ...

  9. Java多线程基础知识(六)

    一. Java中的线程池 线程池的作用: 1. 降低资源消耗 2. 提高响应速度 3. 提高线程的可管理性 线程池处理流程: 1. 线程池判断核心线程池线程是否都在执行任务,如果不是,则创建一个新的工 ...

随机推荐

  1. Java程序CPU使用率过高

    Java程序CPU使用率过高 通过top命令找到使用率过高的java进程PID 根据进程号查找线程TID:ps -mp PID -o THREAD,tid,time 将TID转换成16进制:print ...

  2. [转]Understand QoS at OpenSwitch

    danny http://dannykim.me/danny/57771 2014.02.11 14:34:58 (*.193.128.184) 592 >>> Purpose Th ...

  3. Javascript高级编程学习笔记(63)—— 事件(7)鼠标及滚轮事件

    鼠标与滚轮事件 鼠标事件是web开发中最常用的一类事件,毕竟鼠标是最主要的定位设备 DOM3级事件中定义了9个鼠标事件: click:在用户单击主鼠标按钮(一般为鼠标左键)或者按下回车时触发,这一点对 ...

  4. springboot打jar包,调用webservice出错

    错误提示 Caused by: java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC 在idea中没有问题,但是打成 ...

  5. 神经网络架构PYTORCH-宏观分析

    基本概念和功能: PyTorch是一个能够提供两种高级功能的python开发包,这两种高级功能分别是: 使用GPU做加速的矢量计算 具有自动重放功能的深度神经网络从细的粒度来分,PyTorch是一个包 ...

  6. C 语言restrict 关键字的概念及使用例子

    restrict是c99标准引入的,它只可以用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式.即它告诉编译器,所有修改该指针所指向内存中内容的操作都必须通过该指针来修改,而不能通过其 ...

  7. Linux 下 pushd,popd,cd- 用法

    一,为何要使用这几个命令? 可能大家会有疑问,为何要使用这几个命令,   难道用cd不就可以切换目录了吗?   没错,使用cd就可以切换到需要访问的目录,   但是有时会是一个路径很长,层次很多的目录 ...

  8. 剑指offer【04】- 重建二叉树(java)

    题目:重建二叉树 考点:树 题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6, ...

  9. Vagrant Ansible Playbook 安装一群虚拟机

    https://docs.ansible.com/ https://favoorr.github.io/2017/01/06/vagrant-virtualbox-vagrantfile-config ...

  10. php5.5+apache2.4+mysql5.7在windows下的配置

    apache2.4下载和安装 下载apache2.4 https://www.apachelounge.com/download/VC11/ 提取解压目录Apache24到d:/dev/Apache2 ...