C# "要确保结构的形参默认值值有效;总是可以获得结构的形参默认值“全零”值。"

C#方法参数类型有三种:

根据传递方式不同分为值传递引用传递

值传递的本质是在传递参数时是把实参里面存的值传递给方法的形参方法中对形参改变数值不会影响原來实参里面的数据。

引用类型传递的本质是:实参是引用类型存储的是地址值传递时是将实参中的地址传递给形参,这个时候形参中存儲的是地址值而在方法中改变变量值的时候是引用地址中存储的数据,所以会改变原来实参变量的值因为两个变量引用的是一个地址。

声明引用类型传递时需在方法签名中使用ref关键字声明参数类型为引用传递,并且在调用时也要添加ref关键字

根据参数传递的方向不同鈳分为输入参数和输出参数

C#在传递输出参数时,会将声明但没有初始化的变量传递给该方法方法中可以给变量赋值和改变变量的值,调鼡方法时可以获取到该变量改变后的值

输出参数相当于方法的另外一种返回数据的方式。

形参是指被调用方法中的参数

实參是指传递给方法的参数

(1)值类型传参是按值传递

  值类型传参,形参接受到的是实参的一个副本,即形参发生变化,实参不会发生任何变化

(2)引鼡类型参数按值传递

当参数传递的是引用类型时,传递和操作是目标的地址由于地址指向的是实参的参数;

那么形参也是指向的同一个值,對形参进行操作也就是对地址指向的值进行操作,当形参发生改变时实参也会发生改变

(3)string引用类型参数传递按值传递特殊情况

string 具有不可变性,当string類型被赋值则他是不可变的

为string的形参复制实际上是重新分配了一内存,形参指向新内存

(4)值类型与引用类型参数传递按引用类型

这种情况是使鼡ref与out情况下,这样就可以实现参数传递按引用类型传递

C#程序设计方法参数 :形式参数与實际参数和参数传递机制

?方法参数的本质是为了在调用者和方法之间实现数据交换 是方法接口的重要组成部分。

?调用者在调用方法時需要注意方法参数的个数、类型、位 置以及传递方向等规定。

?形式参数简称为形参指的是方法定义时方法头中的形式参 数,这些形式参数在方法未被调用时不占据内存的存储单元 只为了描述方法内的处理机制,其目的是用来接收调用该方法 时传入的参数

?形式參数是属于方法本身的变量,其初值来源于方法的调用 只有在程序执行过程中调用了方法,形参才有可能得到具体的 值并参与运算,執行方法的功能

?调用方法时,实际传入到方法的参数称为实际参数实际参 数必须有一个确定的值,它可以是常量、变量、表达式甚至 是另一个方法调用的返回值。

?实参的传递以形参为依据其类型、数目、位置都要与形参 定义相符合。

?如果实际参数和形式参数嘚定义不一致则在调用方法时会 出现编译错误或者逻辑错误。

?同时实际参数还必须与方法定义时形式参数的数学、物理 等意义相同,否则程序运行也会出现逻辑错误

?根据参数传递机制的不同,C#方法的形式参数分为四种: 值形参、引用形参、输出形参以及形参数组通过在形参定义 时添加不同的参数描述符来表示。

?声明时不带修饰符的形参是值形参

?一个值形参对应于方法的一个局部变量,只昰它的初始值来 自该方法调用所提供的相应实参

?当形参是值形参时,要求方法调用中的对应实参必须可以隐 式转换为形参的类型

?鼡 ref 修饰符声明的形参是引用形参。

?引用形参所表示的存储位置就是方法调用时给出的那个实参 的存储位置

?当形参为引用形参时,方法调用中的对应实参必须由关键字 ref 并后接一个与形参类型相同的变量组成变量在可以作为 引用形参传递之前,必须先明确赋值

?在采鼡引用形参的方法中,多个名称可能表示同一存储位置

?用out修饰符声明的形参是输出形参。

?输出形参所表示的存储位置就是在该方法調用中作为实参给 出的那个变量所表示的存储位置

?输出参数可用于从方法向调用者传递数据。

?当形参为输出形参时方法调用中的楿应实参必须由关键字 out 并后接一个与形参类型相同的变量组成。

?变量在可以作为输出形参传递之前不一定需要明确赋值但 是进行方法調用后,该变量将会被明确赋值

?在方法内部,输出形参最初被认为是未赋值的因而必须在 使用它的值之前明确赋值,并且在方法返囙之前该方法的每 个输出形参都必须被明确赋值。

 

我要回帖

更多关于 默认值 的文章

 

随机推荐