在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1类和对象的定义类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。 对象是具有类类型的变量。 2类和对象的关系对象是类的实例,类是对象的模板。 3面像对象的优点1、易维护 4创建对象new运算符在 C# 中,new 关键字可用作运算符、修饰符或约束。 new 运算符 例如: new 修饰符 成员变量和局部变量的区别 定义位置区别: 成员变量:定义在类中,方法外。 局部变量:定义在方法中,或者方法声明上。 初始化值的区别: 成员变量:都有默认初始值。 局部变量:没有默认初始值,要想使用,必须先赋值。 存储位置区别: 成员变量:存储在堆中。 局部变量:存储在栈中。 生命周期区别 成员变量:随着对象的创建而存在。随着对象的消失而消失 局部变量:随着方向的调用而存在,随着方法的调用完毕而消失。更严谨地说局部变量的作用域结束时,即被销毁 值类型和引用类型(1)值类型。 C#的所有值类型均隐式派生自System.ValueType: 结构体:struct(直接派生于System.ValueType)。 数值类型: 整型,sbyte(System.SByte的别名),short(System.Int16),int(System.Int32),long(System.Int64),byte(System.Byte),ushort(System.UInt16),uint(System.UInt32),ulong(System.UInt64),char(System.Char)。 浮点型:float(System.Single),double(System.Double)。 用于财务计算的高精度decimal型:decimal(System.Decimal)。 bool型:bool(System.Boolean的别名)。 用户定义的结构体(派生于System.ValueType)。 枚举:enum(派生于System.Enum)。 可空类型。 每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。 例如: int i = 0; 等价于: int i = new int(); 使用new运算符时,将调用特定类型的默认构造函数并对变量赋予默认值。在上例中,默认构造函数将值0赋给了i。 所有的值类型都是密封(seal)的,所以无法派生出新的值类型。 值得注意的是,System.ValueType直接派生于System.Object。即System.ValueType本身是一个类类型,而不是值类型。其关键在于ValueType重写了Equals()方法,从而对值类型按照实例的值来比较,而不是引用地址来比较。可以用Type.IsValueType属性来判断一个类型是否为值类型: TestType testType = new TestType (); if (testTypetype.GetType().IsValueType) { Console.WriteLine("{0} is value type.", testType.ToString()); } (2)引用类型 C#有以下一些引用类型: 数组(派生于System.Array) 用户需定义以下类型。 类:class(派生于System.Object); 接口:interface(接口不是一个“东西”,所以不存在派生于何处的问题。接口只是表示一种contract约定[contract])。 委托:delegate(派生于System.Delegate)。 object(System.Object的别名); 字符串:string(System.String的别名)。 可以看出: 引用类型与值类型相同的是,结构体也可以实现接口;引用类型可以派生出新的类型,而值类型不能;引用类型可以包含null值,值类型不能;引用类型变量的赋值只复制对象的引用,而不复制对象本身。而将一个值类型变量赋给另一个值类型变量时,将复制包含的值。
|
请发表评论