C# 值类型与引用类型

1.值类型存放在内容的栈空间,只有继承ValueType类的都是值类型。ValueType的父类也是Object

2.引用类型存放在堆空间,继承Objet,没有继承ValueType

3.值类型的传递

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //没有使用ref这种关键字,值类型传递没有改变原变量,是重新赋值了给另一个变量
            int num1 = 8;
            new Program().Test1(num1);
            Console.WriteLine(num1);//输出:8
            Console.ReadLine();

            //如果使用ref关键字,传递的是值类型的引用地址,那么改变的就是变量的本身
            int num2 = 8;
            new Program().Test2(ref num2);
            Console.WriteLine(num2);//输出:100
            Console.ReadLine();
        }

        void Test1(int num)
        {
            num = 100;
        }

        void Test2(ref int num)
        {
            num = 100;
        }
    }
}

 

posted @ 2018-05-08 22:33  o李一波o  阅读(113)  评论(0)    收藏  举报