方法:是一种用于实现可以由对象或类执行的计算或操作的成员,是一个已命名的语句集。方法就是把一些相关的语句组织到一起,用来执行一个任务的语句块。比如每个C#程序至少带一个main函数

1.格式:修饰符  返回值类型  方法名称 (参数列表)

{

方法体

}

2.每个方法都有一个名称和一个主体

方法名称:是一个有意义的标识符,应当描述出方法的用途。

方法主体:包含了调用方法时实际执行的语句

修饰符:public ,private, static等等

返回值类型:void, int ,double等等

参数列表可为数组

3.用户可以为大多数方法提供一些数据来进行处理,并让其返回一些信息(通常是处理结果)

下面是方法的各个元素:

  • Access Specifier:访问修饰符,这个决定了变量或方法对于另一个类的可见性。
  • Return type:返回类型,一个方法可以返回一个值。返回类型是方法返回的值的数据类型。如果方法不返回任何值,则返回类型为 void
  • Method name:方法名称,是一个唯一的标识符,且是大小写敏感的。它不能与类中声明的其他标识符相同。
  • Parameter list:参数列表,使用圆括号括起来,该参数是用来传递和接收方法的数据。参数列表是指方法的参数类型、顺序和数量。参数是可选的,也就是说,一个方法可能不包含参数。
  • Method body:方法主体,包含了完成任务所需的指令集。

For example

        //编写一个方法用于计算给定整型数组元素的和
static int Add(params int[] nums)
{
int sum = ;
foreach (int outnum in nums) sum += outnum;
return sum;
}
static void Main(string[] args)
{
int[] myintArry = { , , , , };
Console.WriteLine(Add(myintArry));
Console.ReadKey();

当调用带有参数的方法时,您需要向方法传递参数。在 C# 中,有三种向方法传递参数的方式:值类型,引用类型,输出类型。

值类型:传值给方法,方法中的变量修改不影响参数列表,复制参数的实际值给函数的形式参数,实参和形参使用的是两个不同内存中的值。在这种情况下,当形参的值发生改变时,不会影响实参的值,从而保证了实参数据的安全。

For example

       //编写一个方法用于求平方(没有返回值)
static void Square(int num)
{
num *= num;
Console.WriteLine("num平方="+num); }
static void Main(string[] args)
{
int num = ;
Console.WriteLine(num);
Square(num);
Console.WriteLine(num);
Console.ReadKey();

引用类型:这种方式复制参数的内存位置的引用给形式参数。这意味着,当形参的值发生改变时,同时也改变实参的值。

ref关键词指定,使用:1.调用函数变量必须非常量;2.调用变量必须初始化。

For example

        //编写一个方法用于求平方(没有返回值)
static void Square(ref int num)
{
num *= num;
Console.WriteLine("num平方="+num); }
static void Main(string[] args)
{
int num = ;
Console.WriteLine(num);
Square( ref num);
Console.WriteLine(num);
Console.ReadKey();

输出参数:可以返回多个值

1.执行方式与ref完全一样,关键字为out

For example

       //编写一个方法用于计算输出数组中最大的值
static int MaxNum(int[] nums, out int MaxNumIndex)
{
int maxNum = nums[];
MaxNumIndex = ;
for (int i = ; i < nums.Length; i++)
{
if (maxNum < nums[i])
maxNum = nums[i];
MaxNumIndex = i;
}
return maxNum;
}
static void Main(string[] args)
{
//int[] a= { 1, 2, 3, 4, 5 ,6};
//Console.WriteLine(Add(a));
//Console.ReadKey();
int[] a = {,,,,,,,};
int MaxNumIndex;
Console.WriteLine("最大值max={0},最大值索引是{1}",MaxNum(a,out MaxNumIndex),MaxNumIndex);
Console.ReadKey();

注:输出变量与引用变量的区别

1.未初始化的变量用作ref非法,而out合法

2.函数调用out参数量,必须把它当作尚未赋值(即可以把已赋值的变量当作out参数,但存储在该变量中的值在方法执行时会丢失)

3.ref,out必须在调用及定义方法时声明

C#方法(用法,参数)的更多相关文章

  1. 关于Jquery中ajax方法data参数用法的总结

    data 发送到服务器的数据.将自动转换为请求字符串格式.GET 请求中将附加在 URL 后.查看 processData 选项说明以禁止此自动转换.必须为 Key/Value 格式.如果为数组,jQ ...

  2. jQuery中eq()方法用法实例

    本文实例讲述了jQuery中eq()方法用法.分享给大家供大家参考.具体分析如下: 此方法能够获取匹配元素集上的相应位置索引的元素. 匹配元素集上元素的位置索引是从0开始的. 语法结构: 复制代码 代 ...

  3. jQuery中attr()方法用法实例

    本文实例讲述了jQuery中attr()方法用法.分享给大家供大家参考.具体分析如下: 此方法设置或返回匹配元素的属性值. attr()方法根据参数的不同,功能也不同. 语法结构一: 获取第一个匹配元 ...

  4. javascript的setTimeout()与setTimeout()方法用法总结

    setTimeout与setInterval的区别: setTimeout 定义和用法: setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式. 语法: setTimeout(code ...

  5. C#中Activator.CreateInstance()方法用法分析

    本文实例讲述了C#中Activator.CreateInstance()方法用法. Activator 类 包含特定的方法,用以在本地或从远程创建对象类型,或获取对现有远程对象的引用. C#在类工厂中 ...

  6. jQuery中index()方法用法实例

    本文实例讲述了jQuery中index()方法用法.分享给大家供大家参考.具体分析如下: 此方法可以搜索匹配元素,并返回元素的索引值.索引值是从0开始的. 语法结构一: 当此方法没有参数的时候,返回值 ...

  7. jQuery中on()方法用法实例

    这篇文章主要介绍了jQuery中on()方法用法,实例分析了on()方法的功能.定义及在匹配元素上绑定一个或者多个事件处理函数的使用技巧,需要的朋友可以参考下 本文实例讲述了jQuery中on()方法 ...

  8. thinkPHP中session()方法用法详解

    本文实例讲述了thinkPHP中session()方法用法.分享给大家供大家参考,具体如下: 系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成. 用法 ? ...

  9. JS中的call()、apply() 以及 bind()方法用法总结

    JS中的call()方法和apply()方法用法总结  : 讲解: 调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域. function add(c,d){ return thi ...

随机推荐

  1. oracle 删除某个用户下的所有对象

    先存放好dropobj.sql 文件 然后登录需要删除的用户 删除前最好备份一下:(备份是在cmd中进行的) C:\Users\panfu>exp file=d:\expall.dmp log= ...

  2. xhr.js:108 Refused to set unsafe header "Cookie"

    https://stackoverflow.com/questions/7210507/ajax-post-error-refused-to-set-unsafe-header-connection/ ...

  3. Visual Studio IronPython CPython

    安装 IronPython - 张善友 - 博客园https://www.cnblogs.com/shanyou/archive/2006/09/14/504580.html VS2017作为pyth ...

  4. Windows系统CPU和内存状态实时查询(Java)

    一.背景 需要查询Windows服务器的CPU和内存状态. Linux系统查询CPU和内存状态很简单,一个top命令搞定,Windows就稍微麻烦一些了. 经过资料查找,发现jdk目前不能直接查询系统 ...

  5. npm WARN deprecated fsevents windows

    更新下 使用yarn貌似会帮助跳过这个问题: info fsevents@2.1.2: The platform "win32" is incompatible with this ...

  6. 从0开始学爬虫9之requests库的学习之环境搭建

    从0开始学爬虫9之requests库的学习之环境搭建 Requests库的环境搭建 环境:python2.7.9版本 参考文档:http://2.python-requests.org/zh_CN/l ...

  7. ISO/IEC 9899:2011 条款6.4——词法元素

    6.4 词法元素 1.token(标记): keyword(关键字) identifier(标识符) constant(常量) string-literal(字符串字面量) punctuator(标点 ...

  8. C/C++如何监测内存泄漏

    C/C++如何监测内存泄漏 C/C++内存泄漏及检测 内存溢出就是内存越界.内存越界有一种很常见的情况是调用栈溢出(即stackoverflow),虽然这种情况可以看成是栈内存不足的一种体现.例如:递 ...

  9. 使用log4j将日志输送到控制台、文件或数据库中

    转: 使用log4j将日志输送到控制台.文件或数据库中 2018-09-07 00:45:08 keep@ 阅读数 2880更多 分类专栏: 其它   版权声明:本文为博主原创文章,遵循CC 4.0 ...

  10. PLSQL流函数代码 540页 【我】

    540页 流函数代码 -- Create table create table STOCKTABLE ( TICKER ), TRADE_DATE DATE, OPEN_PRICE NUMBER, C ...