值类型+引用类型+ref

简介:

1、准备
    struct Str
    {
        public int i;
    }
    class Cla
    {
        public int i;
    }
2、赋值
    Str str = new Str();
    str.i = 10;
    Cla cla = new Cla();
    cla.i = 10;
分类:
运算A
   static void F(Str str)
   {
     str.i = 100;
   }
   static void F(Cla cla)
   {
     cla.i = 100;
   }
结果A
            F(str);
            Console.WriteLine(str.i);//结果10
            F(cla);
            Console.WriteLine( cla.i);//结果100
运算B
   static void F(ref Str str)
   {
     str.i = 100;
   }
   static void F(ref Cla cla)
   {
     cla.i = 100;
   }
结果B
            F(ref str);
            Console.WriteLine(str.i);//结果100
            F(ref cla);
            Console.WriteLine( cla.i);//结果100

运算C
   static void F(Str str)
   {
     str=new Str();
     str.i = 100;
   }
   static void F(Cla cla)
   {
     cla=new Cla();
     cla.i = 100;
   }
结果C
            F(str);
            Console.WriteLine(str.i);//结果10
            F(cla);
            Console.WriteLine( cla.i);//结果10

运算D
   static void F(ref Str str)
   {
     str=new Str();
     str.i = 100;
   }
   static void F(ref Cla cla)
   {
     cla=new Cla();
     cla.i = 100;
   }
结果D
            F(ref str);
            Console.WriteLine(str.i);//结果100
            F(ref cla);
            Console.WriteLine( cla.i);//结果100














本文转自桂素伟51CTO博客,原文链接: http://blog.51cto.com/axzxs/810492,如需转载请自行联系原作者





相关文章
|
2月前
|
存储 Java C#
C# 中的值类型与引用类型
在 C# 编程中,值类型和引用类型的区别至关重要,直接影响内存管理、性能优化及编程模式选择。值类型直接存储数据(如 `int`、`float`),而引用类型存储数据的引用地址(如 `class`、`string`)。值类型的赋值涉及数据复制,适合小数据量;引用类型仅复制引用,适合大数据量处理但需关注垃圾回收。本文通过具体代码示例详细解析二者的定义、存储方式及性能影响,并提供实战案例分析及易错点避免方法,帮助读者更好地理解和应用。
65 2
|
存储 C# C++
值类型和引用类型
值类型和引用类型
再聊一次值类型和引用类型
这是一个托管的值类型,表示array的一个片断, 在用做websocket接收数据的载体时我发现每次值传递后, 这个ArraySegment<byte>貌似发生了变化。这勾起了我的探究欲。
再聊一次值类型和引用类型
|
存储 开发框架 .NET
C#系列之值类型和引用类型
C#系列之值类型和引用类型
167 0
C#系列之值类型和引用类型
|
存储
foreach 引发的值类型与引用类型思考
用都知道的一句话概括:“引用类型在堆上,栈上只保存引用;值类型即可存放于栈上也可存放于堆上,值类型变量直接存储值本身”。 class Program { static void Main(string[] args) { var list = new L...
1407 0
|
存储 数据格式 JSON
第183天:引用类型和值类型
一、内存分配 1、数值型内存分配 1 2 var num1; //这个时候不进行内存分配 3 var num3=9;//分配内存 4 var num4=num3;//会不会分配 5 6 // 这里到底分配还是不分配内存?? 7 // 答案 --分配内存 彼此拥有独立的内存空间,互不影响 8 console.
1009 0
|
算法 C#
c#值类型与引用类型区别
值类型对象的两种表示方式:未装箱和已装箱,引用类型总是处于已装箱 值类型从System.ValueType派生。该类型提供了与System.Object相同方法,但System.ValueType重写了Equals方法, 能在两个对象的自断值完全匹配的前提下返回true。
969 0