重新学习C#系列-01.方法参数

在介绍之前先来看两个概念:形参和实参。

1.形参声明在方法的参数列表中,如下面代码中,x和y为形参。

2.实参是用于初始化形参的表达式或变量,如下面代码。5和Age为方法实参,5是表达式,Age是int类型的变量。

int Age=10;
MethodName(5,Age);

二、C#中方法参数可以分为:值参数、引用参数、输出参数和参数数组。

1、值参数:通过将实参的值复制到形参的方式把数据传递给方法。方法被调用时,系统如下操作:1)在栈中为形参分配空间;2)将实参的值复制给形参。如下.

注意:不要把值类型和值参数混淆,只参数是把实参的值复制给形参,不管参数类型是引用类型还是值类型。

2.引用参数:必须在方法声明和调用中使用ref修饰符。

注意:作为引用参数,系统不会为形数在栈上分配内存,形参的参数名将作为实参的变量的别名,与实参指向相同的内存位置。

3.输出参数:用于从方法体内把数据传出到调用代码,必须在声明和调用中都使用out修饰符。

注意:输出参数在方法体内调用之前必须先对其进行赋值,也就是说在方法体外的任何赋值都没有意义。

4.参数数组:在数据类型前使用params修饰符。

1)单个值传入方法:

2)作为数组整体传入方法:

注意:在一个方法中只能有一个参数数组,且必须是参数列表的最后一个参数。

时间: 2024-10-06 03:58:20

重新学习C#系列-01.方法参数的相关文章

Java学习(八)方法参数传递方式

package cn.com.postel.wbb.javaextends; /** * java中的方法的参数传递方式只有一种:值传递. * 所谓的值传递就是将实际数值复制一份传入到方法内,而参数本身不会受到影响. * @author wubinbin * */ public class ValueTrans { public static void main(String[] args) { int a = 1; int b = 2; swap(a, b); System. out.prin

Mybatis整理系列(01)————传入参数方式以及#{}与${}的区别

一.在MyBatis的select.insert.update.delete这些元素中都提到了parameterType这个属性.MyBatis现在可以使用的parameterType有基本数据类型和JAVA复杂数据类型 基本数据类型:包含int,String,Date等.通过#{参数名},只能传入一个参数:通过#{0}.#{1}--索引方式,可以传入多个参数:如果通过#{参数名}传多个值,又不想使用索引方式,可以使用@param()注解. 复杂数据类型:包含JAVA实体类.Map.通过#{属性

黑 马 程 序 员_视频学习总结<Objective-C>----01 面向对象思想、类和对象、面向对象方法

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.面向对象 1. 面向对象和面向过程思想区别 OC为面向对象.C为面向过程.实质是解决问题的两种不同的思想.面向过程关注的是步骤,面向对象关注的是解决问题需要的对象. 2. 常用术语 面向过程:Procedure Oriented面向对象:Object Oriented 简称OO面向对象编程:Object OrientedProgrammin

Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权限修饰符,默认访问, 类,方法,成员变量 private 权限修饰符,私有访问, 方法,成员变量 static 静态修饰符 方法,成员变量 final 最终修饰符 类,方法,成员变量,局部变量 abstract 抽象修饰符 类 ,方法 我们编写程序时,权限修饰符一般放于所有修饰符之前,不同的权限修饰

Java SE学习之方法参数的使用

本文是学习网络上的文章时的总结以及自己的一点实践,感谢大家无私的分享. Java程序设计语言对对象采用的不是引用调用,实际上,对象引用进行的是值传递. 在Java程序设计语言中,方法参数的使用情况: 1.一个方法不能修改一个基本数据类型的参数(即数值型和布尔型): 2.一个方法可以改变一个对象参数的状态: 3.一个方法不能实现让对象参数引用一个新的对象. 下面是测试代码 package SE; public class ParamTest { /** * <p> * </p> *

JAVA入门学习: 方法参数的传递(函数传参问题)

引言:我们知道C++中拥有两种参数传递方式, 值调用和引用调用. 有些程序员认为JAVA程序设计语言对对象采用的是引用调用,实际上,这种理解是不对的. 由于这种误解存在普遍性,所以下面将阐述一下这个问题. 所以用一段简单的代码来阐述一下这个问题: 1 //如果方法参数是的输入时引用,那么我们将交换两个指针(即引用) 2 public static void swap(Employee x, Employee y) 3 { 4 Employee temp = x; 5 x =y; 6 y = te

java io系列01之 &quot;目录&quot;

javaIO系列转载出处:http://www.cnblogs.com/skywang12345/p/io_01.html 该分类所有博文,均转载同一作者,后边不再累赘标名. java io 系列目录如下: 01. java io系列01之  "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream) 03. java io系列03之 ByteArrayOutputStream的简介,源码分析和示例(包括Ou

深度学习实践系列之--身份证上汉字及数字识别系统的实现(上)

前言: 本文章将记录我利用深度学习方法实现身份证图像的信息识别系统的实现过程,及学习到的心得与体会.本次实践是我投身AI的初次系统化的付诸实践,意义重大,让自己成长许多.终于有空闲的时间,将其记录,只为更好的分享与学习. 目录: 1.本人的主要工作 2.关键技术 3.模型训练 4.系统设计及实现 5.总结 正文: 一.本人的主要工作 深度学习技术与传统模式识别技术相比,免去人工提取特征,识别率更高.我基于深度学习的技术背景,主要的研究内容如下: 1)身份证图像涉及个人隐私,很难获取其数据训练集.

深度学习实践系列(2)- 搭建notMNIST的深度神经网络

如果你希望系统性的了解神经网络,请参考零基础入门深度学习系列,下面我会粗略的介绍一下本文中实现神经网络需要了解的知识. 什么是深度神经网络? 神经网络包含三层:输入层(X).隐藏层和输出层:f(x) 每层之间每个节点都是完全连接的,其中包含权重(W).每层都存在一个偏移值(b). 每一层节点的计算方式如下: 其中g()代表激活函数,o()代表softmax输出函数. 使用Flow Graph的方式来表达如何正向推导神经网络,可以表达如下: x: 输入值 a(x):表示每个隐藏层的pre-acti