C# 之值类型与引用类型参数[基础]

简介:

根据参数类型和传递方式,有以下4种不同的情况:
值类型参数的按值传递;                    (int m)
引用类型参数的按值(地址值)传递;  (string str)
值类型参数的按引用传递;                (ref int m)
引用类型参数的按引用传递;            (ref string str) 

 

复制代码
ExpandedBlockStart.gif 值类型与引用类型参数
class  Demo
    {
        
static   void  Main( string [] args)
        {
            
int  n  =   100 ;
            
string  str  =   " One " ;

            ChangeByValue(
ref  n);   //   值类型:ref 传递的是变量 n 的地址(即:值类型的地址)
            ChangeByRef( ref  str);   // 引用类型:ref 传递的是变量 str 的地址(即:引用的引用)

            Console.WriteLine(n);
            Console.WriteLine(str);
        }
        
private   static   void  ChangeByValue( ref   int  m)
        {
            m 
=   200 ;   // 实际上改变的是变量 n 的值
        }
        
private   static   void  ChangeByRef( ref   string  s)
        {
            s 
=   " Two " ;
        }

        
// 通过,参数带ref(或out),与不带ref(或out)的方法能实现方法的重载
         private   static   void  ChangeByRef( string  s)
        {
            s 
=   " Two " ;
        }

        
//  报错:不能定义仅在 ref 和 out 上有差别的重载方法。
        
//  原因:在MSIL中, ref 和 out 是同一类型。
      /*  private static void ChangeByRef(out string s)
        {
            s = "Two";
        }
     
*/  
    }



本文转自钢钢博客园博客,原文链接http://www.cnblogs.com/xugang/archive/2010/04/15/1712845.html



相关文章
|
5月前
|
存储 编解码 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用UserSet功能保存和载入相机的各类参数(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用UserSet功能保存和载入相机的各类参数(C#)
80 0
|
4月前
|
存储 Java C#
C# 中的值类型与引用类型:内存大小解析
C# 中的值类型与引用类型:内存大小解析
|
4月前
|
存储 安全 Java
程序与技术分享:C#值类型和引用类型的区别
程序与技术分享:C#值类型和引用类型的区别
34 0
|
19天前
|
存储 Java C#
C# 中的值类型与引用类型
在 C# 编程中,值类型和引用类型的区别至关重要,直接影响内存管理、性能优化及编程模式选择。值类型直接存储数据(如 `int`、`float`),而引用类型存储数据的引用地址(如 `class`、`string`)。值类型的赋值涉及数据复制,适合小数据量;引用类型仅复制引用,适合大数据量处理但需关注垃圾回收。本文通过具体代码示例详细解析二者的定义、存储方式及性能影响,并提供实战案例分析及易错点避免方法,帮助读者更好地理解和应用。
31 2
|
4月前
|
存储 Java 编译器
C# 变量与参数详解
C# 变量与参数详解
|
5月前
|
开发框架 小程序 .NET
C#动态生成带参数的小程序二维码
C#动态生成带参数的小程序二维码
|
5月前
|
安全 编译器 C#
C#中的可空引用类型:减少空引用异常的利器
【1月更文挑战第9天】C# 8.0中引入的可空引用类型特性,它通过在编译时提供更精确的静态分析,帮助开发者减少运行时的空引用异常。文章详细阐述了可空引用类型的工作原理、如何配置项目以使用此特性,以及在实际编码中如何利用可空引用类型提升代码的健壮性和可读性。
|
5月前
|
存储 C#
C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析
方法是一段代码,只有在调用时才会运行。 您可以将数据(称为参数)传递给方法。 方法用于执行某些操作,也被称为函数。 为什么使用方法?为了重用代码:定义一次代码,然后多次使用。
67 0
|
10月前
|
存储 C#
C# “值类型“和“引用类型“在内存的分配
C# “值类型“和“引用类型“在内存的分配
|
10月前
|
C# 数据安全/隐私保护
C# 窗体之间参数互相传递的两种方法与使用
C# 窗体之间参数互相传递的两种方法与使用