【km笔记】CSharp之值类型和引用类型

一.值类型和引用类型

1.值类型

a.byte,bool,enum,struct,decimal
b.都派生自System.ValueType类;但是System.ValueType又继承自System.Object类

c.值类型不能继承,只能实现接口(不太懂

2.引用类型

a. string、数组、类、接口、委托

b. 引用类型都派生自System.Object类

c. 引用类型可以继承

3.赋值

a. 值类型变量赋值会拷贝一个副本

b.引用类型变量赋值是复制对对象的引用

 

 

二.值传递和引用传递(值类型和引用类型作为参数传值)

1.值传递

a.

static void M1(int num)
{
     num++;                
}
 int num = 10;
 M1(num);
 Console.WriteLine(num);   
//输出结果为10

 

 1 //Question:2
 2             Person p = new Person();
 3             p.name = "km";
 4             M2(p);
 5             Console.WriteLine(p.name);//输出结果:ly
 6         
 7         static void M2(Person p1)
 8         {
 9             p1.name = "ly";
10         }       

 

 1         static void M3(Person p1)
 2         {
 3             Person p3 = new Person();
 4             p1 = p3;
 5             p1.name = "lx";
 6         }
 7 
 8             //Q3:
 9             Person p2 = new Person();
10             p2.name = "cc";
11             M3(p2);
12             Console.WriteLine(p2.name);//输出结果为:cc

 

b. 待续……

2.引用传递

 

 

三.待续……

posted @ 2014-03-25 20:25  Hello-Word@km.Zhao  阅读(2201)  评论(0编辑  收藏  举报