博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#中的值类型和引用类型

Posted on 2009-06-03 13:23  记录  阅读(727)  评论(0编辑  收藏  举报

1、常量:访问修饰符 const 数据类型 常量名=值

     使用场合:A、用于在程序中一旦设定就不允许被修改的值

                   B、用于在程序中被经常引用的值

2、枚举:表示一组有限的值,对可能的值进行约束。为了防止用户乱输入,规范用户的输入。

     2.1、给枚举成员赋值只能赋整型,不能赋字符串。

     2.2、转换:A、枚举转换为整型 如int genderNum=(int)stu.Gender

                     B、枚举转换为字符串 如Console.WriteLine("您输入的性别是{0}",stu.Gender.ToString())

                     C、从一个字符串中获取枚举的值

                          如stu.Gender=(Genders)(Enum.Pase(typeof(Genders),"Female"))

示例:

Code

注意:在枚举的主体中,是不可以定义属性和方法

         枚举与类是同一级别的,因此要单独新建

3、结构:访问修饰符 struct 结构名

             {

                  定义结构成员

              }

     类与结构的区别:            类                                       结构

                                  引用类型                                   值类型

                                 可以被继承                                不能被继承

                                可以有默认构造函数                    不可以有默认构造函数

                               可以添加无参的构造函数              可以添加构造函数,但它们必须带参数

                               可以有实例字段初始值                  不能有实例字段初始值

     使用场合:结构用于组织一堆数据。

                   1.该类型的主要职责是否用于数据存储?

                   2.该类型的公有接口是否都是一些存取属性?

                   3.是否确信该类型永远不可能有子类?

                   4.是否确信该类型永远不可能具有多态行为?

4、值类型和引用类型的区别:主要是在内存中的存储方式不同造成的。

     值类型将一个值类型变量赋给另一个值类型变量时,将复制包含的值(替身)。

     引用类型变量的赋值只复制对象的引用,而不复制对象的本身。

     两者的转换:示例

Code

引用类型:类(基类:System.Object/字符串:string,但是表现为值类型的特征/自定义类:class)

              接口:interface  

              数组 

值类型:主要包括基本的数据类型、结构类型、枚举类型等

5、在类中使用索引器:示例

Code