`
镭风【CHN】
  • 浏览: 110861 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C#中的输出参数ref和out

阅读更多
C#中的输出参数有两种:ref和out。
其实称他们为输出参数不是特别的准确,因为他们并不是像函数返回值一样“输出”一个值,而是将原先存在的值进行编辑。

举个例子(伪代码):

1、一般参数
int i = 1;
int j = 2;

int add(int i, int j)
{
   return i + j;
}

main
{
   print(add(i, j))
}


2、使用ref
int i = 1;
int j = 2;

void add(ref int i, ref int j)
{
   i = i + j;
}

main
{
   add(i, j);
   print(i);
}



两个函数都是用来计算两个值的和,不同的是一般参数传递进函数的是参数的拷贝值,
而ref和out直接修改内存中的数据。

对于值类型数据,ref和out相当于指针。
对于引用类型数据,就直接传递指向原数据的指针。


那么ref和out有什么区别呢?
区别在于对参数对象的初始化。
ref要求参数在传递之前进行初始化,而out要求在函数中对参数进行初始化,
所以,ref是个输入输出参数,而out是个输出参数。

2
0
分享到:
评论
2 楼 镭风【CHN】 2009-09-22  
我天天加班,没完没了的写啊!
1 楼 herod21 2009-09-20  
不错,我到新公司还没碰代码呢

相关推荐

    C#方法中参数ref和out详解

    C#方法中参数ref和out详解 C# 方法中参数类型有四种,分别是值参数、引用参数、输出参数和参数数组。本文将详细介绍 C# 方法中参数 ref 和 out 的相关资料,并对其进行详细的比较和对照。 一、值参数 在 C# 方法...

    c#学习体会使用 ref 和 out 传递数组

    在C#语言中,`ref`和`out`是两个非常重要的关键字,它们主要用于处理函数参数的传递方式。通常情况下,在C#中调用方法时,参数是以值传递的方式进行的,也就是说,方法内的参数改变不会影响到方法外的原始变量。然而...

    C#中ref,out和params有什么区别

    在C#编程语言中,`ref`、`out`和`params`是三种不同的参数修饰符,它们分别用于控制方法如何处理传入的参数。这些关键字在不同的场景下提供了非常有用的功能,使得开发者能够更加灵活地编写代码。 #### 二、`ref` ...

    in.ref.out C#传值调用与引用调用

    通过上面的例子和解释,我们可以看到 `in`、`ref` 和 `out` 关键字在C#中的不同用途: - `in` 用于值传递,方法内部无法修改参数。 - `ref` 用于引用传递,可以在方法内部修改并更新原始变量。 - `out` 也是用于引用...

    C#中关键字ref与out的区别

    C#中关键字ref与out的区别 C#中关键字ref与out的区别是非常重要的...因此,我们可以看到,ref和out关键字的区别在于,ref要求变量必须在传递之前进行初始化,而out关键字不需要初始化,可以在方法中对参数进行初始化。

    C#中out参数、ref参数与值参数的用法及区别

    除了 ref 参数外,还可以指定 out 关键字,指定所给的参数时一个输出参数。out 参数和 ref 参数都在函数定义和函数调用中作为参数的修饰符。例如: ```csharp static int Max(int[] intArray, out int maxIndex) {...

    c#基础系列之ref和out的深入理解

    在C#编程语言中,`ref`和`out`关键字是用来处理方法参数的引用传递,它们都是为了在方法之间共享变量的值。虽然两者在某些方面相似,但它们的使用场景和规则有所不同。 首先,我们要明确一点,C#中参数传递有两种...

    C#中ref与out语法的使用

    在C#编程语言中,`ref`和`out`关键字是两种特殊的参数传递方式,它们允许函数修改调用者提供的变量的值。虽然这两种关键字在功能上有些相似,但它们的使用场景和语法规则有所不同。本文将深入探讨`ref`和`out`的用法...

    ref和out传值

    在C#编程语言中,`ref` 和 `out` 关键字用于参数传递,它们都是为了改变函数调用时实参的值。然而,两者在使用上存在一些关键区别,理解这些差异对于编写高效且正确的代码至关重要。 1. **传值方式**: 在C#中,...

    ref和out的作用(txt)

    在C#编程语言中,`ref`和`out`是两种用于方法参数的关键字,它们允许方法直接修改传递给它的参数值。这两种关键字的主要区别在于调用方法时参数的初始化以及参数的传递方式。 #### `ref`关键字 `ref`关键字使得...

    C_中out和ref的区别

    在C#编程语言中,`out`和`ref`关键字都是用于传递参数的方式,它们都涉及到按引用传递,这意味着函数可以改变实参的值。然而,它们之间存在一些关键的区别,下面将详细解释这些概念。 1. **相同点**: - **按引用...

    ref out 的区别

    `ref` 和 `out` 关键字在 C# 中就是用来实现引用传递的,它们都是对原始变量进行操作,但有各自的特性和使用场景。 **`ref` 关键字** `ref` 关键字用于在方法调用中传递参数时保持对原始变量的引用。这意味着,当在...

    ref和out的区别

    在C#编程语言中,`ref`和`out`关键字都是用于传递参数的引用,这意味着它们都允许函数或方法直接修改调用者提供的变量。尽管它们具有相似性,但存在关键的区别,这些区别体现在参数的初始化、使用上下文以及如何...

    C#中ref和out参数使用时需要注意的问题

    在C#编程语言中,`ref` 和 `out` 关键字用于方法参数,它们都是为了在函数调用中实现变量值的传递。虽然两者在某些方面相似,但它们之间存在重要的区别,开发者在使用时需要特别注意。 首先,我们来看`ref`关键字。...

    c#下的各种参数的详细说明与用法

    输出参数使用`out`关键字,它与`ref`类似,也允许函数修改参数的值。不同之处在于,`out`参数在调用函数时不需要初始化,而且函数必须为`out`参数赋值。一个例子如下: ```csharp public int testOut(out int x, ...

    C#中参数数组、引用参数和输出参数示例详解

    C#中参数数组、引用参数和输出参数示例详解 C#中参数数组、引用参数和输出参数是三个重要的参数类型,了解它们的使用方法和特点对程序设计和开发具有重要作用。本文将通过示例代码详细介绍C#中参数数组、引用参数和...

    C_基础:ref和out的区别.txt

    在C#编程语言中,`ref` 和 `out` 是两个非常重要的关键字,它们主要用于传递参数,特别是在函数调用时需要修改方法外部变量的情况下。掌握 `ref` 和 `out` 的正确使用方式对于编写高质量的C#代码至关重要。 #### 1....

    out和ref的区别

    在C#编程语言中,`out`和`ref`是两个用于传递参数的关键字,它们在方法调用时允许方法修改传递进来的变量值。虽然这两个关键字的功能相似,但在使用上存在一定的区别。接下来,我们将通过通俗易懂的方式详细解释`out...

    C#方法参数例子

    在C#编程语言中,方法参数是函数或方法定义中的一部分,...总之,了解C#中的值参数、引用参数、输出参数和数组参数是至关重要的,它们构成了方法调用的核心机制。熟练掌握这些知识将有助于你编写更高效、更灵活的代码。

Global site tag (gtag.js) - Google Analytics