知识大全 正确理解C#中的关键字[1]

Posted 类型

篇首语:获致幸福的不二法门是珍视你所拥有的、遗忘你所没有的。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 正确理解C#中的关键字[1]相关的知识,希望对你有一定的参考价值。

正确理解C#中的关键字[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

最近有人问到 ref 关键字的正确用法 下面我们来举例说明 其实要更好的理解 ref 关键字 结合 C++ 代码更加容易一些 另外在开始我们的例子之前 需要提前说明几点

 

C# 中的数据有两种类型 引用类型(reference types)和值类型(value types)简单类型(包括int long double)和结构(structs)都是值类型 而其他的类都是引用类型 简单类型在传值的时候会做复制操作 而引用类型只是传递引用 就像 C++ 中的指针一样

 

注意 structs C# C++ 中的区别 在 C++ structs 和类基本相同(except that the default inheritance and default access are public rather than private)而在 C# structs 和类有很大的区别 其中最大的区别(我个人觉得 同时也是容易忽略的一个地方)可能就是它是值类型 而不是引用类型

 

下面这段代码是 MSDN 中的例子

 

  // cs_ref cs

  using System;

  public class MyClass

  

   public static void TestRef(ref char i)

  

   // The value of i will be changed in the calling method

  i = b ;

  

  public static void TestNoRef(char i)

  

   // The value of i will be unchanged in the calling method

  i = c ;

  

   // This method passes a variable as a ref parameter; the value of the

 // variable is changed after control passes back to this method

  // The same variable is passed as a value parameter; the value of the

  // variable is unchanged after control is passed back to this method

  public static void Main ()

  

    char i = a ; // variable must be initialized

    TestRef(ref i); // the arg must be passed as ref

    Console WriteLine(i);

    TestNoRef(i);

    Console WriteLine(i);

  

 

大家很容易看出输出结果是

 

  b

b

 

  那么如果把这个例子做一些新的改动 将值类型(这里用的是 char)改成引用类型 程序运行又是什么效果呢?

cha138/Article/program/net/201311/15037

相关参考

知识大全 正确理解C#中的关键字[2]

正确理解C#中的关键字[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  //  //MyCl

知识大全 正确理解C#中的关键字[3]

正确理解C#中的关键字[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  //  //MyCl

知识大全 正确理解C#中的ref关键字(续)[2]

正确理解C#中的ref关键字(续)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!那么我们再来

知识大全 理解C#中的代理和事件(一)

理解C#中的代理和事件(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  突然写这篇文章真的有

知识大全 c# static的全部用法收集整理

   static的全部用法   要理解static就必须要先理解另一个与之相对的关键字很多人可能都还不知道有这个关键字那就是auto其实我

知识大全 c#:static使用方法整理

  要理解static就必须要先理解另一个与之相对的关键字很多人可能都还不知道有这个关键字那就是auto其实我们通常声明的不用static修饰的变量都是auto的因为它是默认的就象short和long

知识大全 C#编程中的 New 关键词的几种用法[1]

C#编程中的New关键词的几种用法[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前段时间

知识大全 c#中的params关键字的应用

  要接受未知数目的参数可以使用关键字params该关键字用于参数列表中声明参数列表最后面的值params关键字与数组一起使用  当值被传递给方法时编译器首先查看是否有匹配的方法如果有则调用该方法如果

知识大全 C#编程中的 New 关键词的几种用法

C#编程中的New关键词的几种用法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb

知识大全 C#编程中的 New 关键词的几种用法[3]

C#编程中的New关键词的几种用法[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!newpub