黑马程序员技术交流社区
标题:
c#常见问题,百度上搜的,和大家分享一下
[打印本页]
作者:
李 玉林
时间:
2012-9-6 20:38
标题:
c#常见问题,百度上搜的,和大家分享一下
C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里
定义:Attribute 类将预定义的系统信息或用户定义的自定义信息与目标元素相关联。公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。
Property是类中存取数据的一个统一模式
C#中的Field就是C++中指的成员变量Member Variable
什么是metadata?
是记录类信息(成员,方法,继承……)的数据,它会被存储在PE文件或内存里。常用到的Intellisense就是其应用之一。
C++,Java和C#之间的对比?
C#借鉴了Java虚拟机的概念,代码理论上可以跨平台执行,对内存的管理加以简化
C#对于C++来讲,保存了其语法习惯,使用起来更易上手
C#里是否可以直接对内存操作?
C#中可以用unsafe{}来标明所谓不安全的代码段。
所谓不安全,是因为指针可对内存数据操作,但如果进行操作不当,则有可能使程序出错,甚至系统瘫痪,这被视为一个不安全的因素。
Struct和class?
struct是值类型,内存分配在栈上,class是引用类型,内存分配在堆上。值类型不能设为null
struct implicitly derived from System.ValueType
对struct中变量赋值会产生赋值的一个拷贝
struct没有继承,其成员不能用protected修饰,class可以继承和多态
struct多用来存储数据,而class则作为类的抽象
struct不能有初始化成员
this的意义和class的this不同??
struct不能有显式无参构造器,因为其中的成员自动被初始化为默认值,其中的引用类型被设置为null。但可有静态无参构造器
class可以定义析构器,但struct不能
class用于对象建模,而struct更倾向于数据的整合
struct的构造器必须初始化所有成员,而class不需要
class使用实例时,必须使用new关键字,而struct不用
class作为参数时,是引用传递,而struct则为值传递
C#中的数据类型
基原类型,编译器直接支持的类型
值类型,变量内存分配在栈,不需要内存回收
引用类型,变量内存分配在堆,并有对象引用到堆中内存地址
Abstract class是什么?
不能实例化
可有成员函数的实现
类似于C++中的纯虚函数
继承于它的类需要override其定义的方法
作者:
徐宏伟
时间:
2012-9-6 21:16
假如继承于抽象类(父类)的类(子类)还是抽象类(abstract)的话,还需要override父类的方法吗?
作者:
李 玉林
时间:
2012-9-6 22:56
抽象类只能做父类 而且不能实例化
作者:
许庭洲
时间:
2012-9-7 08:35
值得学习和收藏ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2