C#学习笔记(十二)参数:传值、输出、引用、数组、具名、可选参数、可选方法

本文详细介绍了C#中不同类型的参数,包括传值参数、引用参数(ref)、输出参数(out)、数组参数、具名参数、可选参数以及扩展方法(this参数)。通过示例展示了它们在不同场景下的使用,如如何修改实际参数值、返回多个值、简化方法调用等。此外,还提到了参数的可读性和副作用(SideEffect)概念。

参数是方法的一部分。

  • 传值参数:参数的默认传递方式。
  • 输出参数:用于除返回值外还需输出的场景。
  • 引用参数:用于需要修改实际参数值的场景。
  • 数组参数:用于简化方法的调用。
  • 具名参数:提高可读性。
  • 可选参数:参数拥有默认值。
  • 扩展方法(this参数):为目标数据类型“追加”方法。

1、传值参数:值类型

作用域为当前方法:初始值为该方法调用时所赋给他的实参。

2、传值参数:引用类型,并且新创建对象

引用类型的变量:存储的值是一个地址。指向在堆内存中的数据。即:引用类型的变量的值存储的是引用类型实例在堆内存中的地址。

引用类型的变量和实例是分开的。引用类型的变量会引用着引用类型的实例。


3、引用参数:值类型

使用ref修饰符声明的形参。

  • 传值参数会为传入方法内实际参数创建一个副本。
  • 引用参数不会为传入的参数创建副本。引用参数会直接指向所传入的实际参数所指向的内存地址。

引用参数并不创建新的存储位置,相反引用参数表示的存储位置恰是在方法调用中作为实参给出的那个变量所表示的存储位置。因此:变量在可以作为引用形参传递之前,必须先明确赋值

引用参数是故意改变传入的实参的值。利用方法的副作用SideEffect改变实际参数的值。

static void Main(string[] args)
{
    int y = 1;
    IWantSideEffect(ref y);
    Console.WriteLine(y);    // 101
}


static void IWantSideEffect(ref int x)
{
    x = x + 100;
}

4、引用类型:引用类型,创建新对象

class Program
{
    static void Main(string[] args)
    {
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值