接口和抽象类,值类型和引用类型,委托,反射,装箱和拆箱
2009-08-15 16:10
369 查看
接口和抽象类的区别
相同点: 1.都不能被直接实例化,都可以通过继承实现其抽象方法
不同点:
1.接口可以多继承,抽象类只能单继承
2.接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。
3.接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。
4.接口可以用于支持回调;抽象类不能实现回调,因为继承不支持
5.接口可以作用于值类型和引用类型;抽象类只能作用于引用类型
6.抽象类可以继承接口,反过来不行
详细点看看这里/article/6957406.html
值类型和引用类型区别
1. 值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址。
2. 值类型存取速度快,引用类型存取速度慢。
3. 值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用
4. 值类型继承自System.ValueType,引用类型继承自System.Object
5. 栈的内存分配是自动释放;而堆在.NET中会有GC来释放
C#中基本数据类型是值类型,结构也是值类型。而数组、类、接口、字符串都是引用类型
详细点看看这里/article/5039684.html
详细点看看这里/article/4671518.html
什么是委托
委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的引用
详细点看看这里/article/4671509.html
什么是反射
动态获取程序集信息。
程序集包含模块,而模块又包括类型,类型下有成员,反射就是管理程序集,模块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者获取现有对象的类型,能调用类型的方法和访问类型的字段属性。它是在运行时创建和使用类型实例
什么是装箱和拆箱
从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。
相同点: 1.都不能被直接实例化,都可以通过继承实现其抽象方法
不同点:
1.接口可以多继承,抽象类只能单继承
2.接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。
3.接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。
4.接口可以用于支持回调;抽象类不能实现回调,因为继承不支持
5.接口可以作用于值类型和引用类型;抽象类只能作用于引用类型
6.抽象类可以继承接口,反过来不行
详细点看看这里/article/6957406.html
值类型和引用类型区别
1. 值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址。
2. 值类型存取速度快,引用类型存取速度慢。
3. 值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用
4. 值类型继承自System.ValueType,引用类型继承自System.Object
5. 栈的内存分配是自动释放;而堆在.NET中会有GC来释放
C#中基本数据类型是值类型,结构也是值类型。而数组、类、接口、字符串都是引用类型
详细点看看这里/article/5039684.html
详细点看看这里/article/4671518.html
什么是委托
委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的引用
详细点看看这里/article/4671509.html
什么是反射
动态获取程序集信息。
程序集包含模块,而模块又包括类型,类型下有成员,反射就是管理程序集,模块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者获取现有对象的类型,能调用类型的方法和访问类型的字段属性。它是在运行时创建和使用类型实例
什么是装箱和拆箱
从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。
相关文章推荐
- 了解c#中 值类型/引用类型,装箱/拆箱,Object类
- 值类型和引用类型、可空类型、堆和栈、装箱和拆箱
- 格物致知--《Effective C#》读书笔记--验证接口引用指向装箱后的值类型时无需拆箱
- .NET中的六个重要概念:栈、堆、值类型、引用类型、装箱和拆箱
- .NET中的六个重要概念:栈、堆、值类型、引用类型、装箱和拆箱
- 谈一谈值类型与引用类型和装箱与拆箱
- 6个重要的.NET概念: - 堆栈,堆,值类型,引用类型,装箱和拆箱(转)
- .net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串
- 初读CLR Via C# 之——值类型和引用类型、装箱与拆箱
- 6个重要的.NET概念: - 堆栈,堆,值类型,引用类型,装箱和拆箱
- [转载文章]6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱
- csharp004值类型引用类型区别,以及装箱拆箱以及转换相关
- 加强eclipse的使用技巧。可变参数。基本数据类型自动装箱和拆箱。枚举。反射。数组反射的应用。ArrayList和HashSet。JavaBean
- 再谈CLR:值类型按照引用传递(以及与装箱拆箱的区别)
- 【译】.NET中六个重要的概念:栈、堆、值类型、引用类型、装箱和拆箱
- 堆和栈、值类型和引用类型、装箱和拆箱
- .NET中的六个重要概念:栈、堆、值类型、引用类型、装箱和拆箱
- C# 与 C++强强联合 ,深入C#内存管理来分析 值类型、引用类型、装箱、拆箱、堆栈几个概念组合
- .NET中的六个重要概念:栈、堆、值类型、引用类型、装箱和拆箱
- ---类型描述 ---值类型 ---引用类型 ---类型之间的转换 ---装箱和拆箱