C#关键字ref和out】的更多相关文章

在C#中,ref与out是很特殊的两个关键字.使用它们,可以使参数按照引用来传递.总的来说,通常我们向方法中传递的是值.方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕后,这些拷贝将被丢弃,而原来的值不将受到影响.此外我们还有其他向方法传递参数的形式,引用(ref)和输出(out).有时,我们需要改变原来变量中的值,这时,我们可以向方法传递变量的引用,而不是变量的值.引用是一个变量,他可以访问原来变量的值,修改引用将修改原来变量的值.变量的值存储在内存中,可以创建一个引用,他指向变…
通常,变量作为参数进行传递时,不论在方法内进行了什么操作,其原始初始化的值都不会被影响: 例如: public void TestFun1() { ; TestFun2(arg); Console.WriteLine(arg); Console.ReadKey(); } public void TestFun2(int x) { x++; } 通过执行 test1 t = new test1(); t.TestFun1(); 其结果输出:10 那么问题来了,如果想要操作有影响要怎么做呢? 简单的…
using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Test { class Program { static void Ma…
using System; using System.Collections.Generic; using System.Text; namespace CSharpTest { struct Dog { public int _nFeet; public string _sound; public Dog(int n, string sound) { _nFeet = n; _sound = sound; } public int NFeet { get { return _nFeet; }…
Class1.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Class1 { private string name; public Class1(string name) { // 使用this关键字表明使用当前对象的属性(或方法…
在C#中,如果在方法参数前面加上ref关键字,说明参数传递的是引用,而不是值.如何理解呢? 参数是简单类型的例子 static void Main(string[] args) { string temp = "a"; Change(temp); Console.WriteLine(temp); ChangeByRef(ref temp); Console.WriteLine(temp); Console.ReadKey(); } private static void Change(…
REF关键字 ref 关键字会导致通过引用传递的参数,而不是值. 通过引用传递的效果是在方法中对参数的任何改变都会反映在调用方的基础参数中. 引用参数的值与基础参数变量的值始终是一样的. 不要将“通过引用传递”概念与“引用类型”概念相混淆. 这两个概念不同. 方法参数无论是值类型还是引用类型,都可通过 ref 进行修饰. 通过引用传递值类型时没有值类型装箱. 若要使用 ref 参数,方法定义和调用的方法必须显式使用关键字,ref. 例如: class RefExample { static vo…
1.值类型: static void Main(string[] args) { ; ; NumVal(a, b); Console.WriteLine("a={0},b={1}", a, b); //输出结果为:a=5,b=3 Console.ReadKey(); } static void NumVal(int a, int b) { a = a + b; b = a - b; } 代码 值类型被当做参数时,传递的是值的副本,所以在下面的方法中修改参数的值并不能影响函数调用中指定的…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; using System.IO; using System.Net.Sockets; using System.Threading; namespace ConsoleApplication1 { class Program { static void Main(string…
在C#中通过使用方法来获取返回值时,通常只能得到一个返回值.因此,当一个方法需要返回多个值的时候,就需要用到ref和out,那么这两个方法区别在哪儿呢? MSDN:       ref 关键字使参数按引用传递.其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中.若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字.      out 关键字会导致参数通过引用来传递.这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始…