以下列出了一些在学习C#(C Sharp)和.NET Framework中遇到的基础知识和常见问题,问题最后会分门别类以方便参考,答案会陆续汇总出来。(欢迎大家踊跃提供问题和解答)
目前的各种问题暂时按以下几块划分:
- 基础知识篇
- .NET类库篇
- 程序设计篇
- 数据库篇
- 网络篇
- 其他篇
基础知识篇
- 静态变量和非静态变量的区别?
- C#中有哪些修饰符?
答:C#中共有13种修饰符,按功能分可分为3大类:存取修饰符,类修饰符和成员修饰符。
存取修饰符:
- public:存取不受限制.
- private:只有包含该成员的类可以存取.
- internal:只有当前工程可以存取.
- protected:只有包含该成员的类以及继承的类可以存取.
类修饰符:
- abstract:可以被指示一个类只能作为其它类的基类.
- sealed:指示一个类不能被继承.
成员修饰符:
- abstract:指示该方法或属性没有实现.
- const:指定域或局部变量的值不能被改动.
- event:声明一个事件.
- extern:指示方法在外部实现.
- override:对由基类继承成员的新实现.
- readonly:指示一个域只能在声明时以及相同类的内部被赋值.
- static:指示一个成员属于类型本身,而不是属于特定的对象.
- virtual:指示一个方法或存取器的实现可以在继承类中被覆盖.
- const 和 static readonly 区别?
- extern 是什么意思?
- abstract 是什么意思?
- internal 修饰符起什么作用?
- sealed 修饰符是干什么的?
- override 和 overload 的区别?
- 什么是索引指示器?
- new 修饰符是起什么作用?
- this 关键字的含义?
- final, finally, finalize的区别?
- 类和结构的区别?
- 接口的多继承会带来哪些问题?
- 抽象类和接口的区别?
- 别名指示符是什么?
- 如何释放非托管资源?
- P/Invoke是什么?
- StringBuilder 和 String 的区别?
- explicit 和 implicit 的含义?
- params 有什么用?
- 什么是反射?
- 可以使用抽象函数重写基类中的虚函数吗?
- 密封类可以有虚函数吗?
- 如果基类中的虚属性只有一个属性访问器,那么继承类重写该属性后可以有几个属性访问器?如果基类中有 get 和 set 两个呢?
- abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
- C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?
- 接口可以包含哪些成员?
.NET类库篇
(更新中)
程序设计篇
- C#中的委托是什么?事件是不是一种委托?
- 什么时候应该使用 ==?什么时候应该使用 Equals?
- 什么是插件?如何在C#中实现插件机制?
数据库篇
(更新中)
网络篇
(更新中)
其他篇
- C#可否对内存进行直接的操作?