A

abstract class

An abstract class is a class that must be inherited and have the methods overridden. It can not be instantiated. And at least one of the methods in the class is abstract.

Array, ArrayList, BitArray

An array is a collection of related instance either value or reference type. Array proceses an immutable structure in which the number of dimensions and size of the array are fixed at instantiation.
ArrayList is a dynamic array.  Elements can be added & removed from an ArrayList at the runtime.

Array.CopyTo(), Array.Clone()

CopyTo() method copies the elements into another existing array.
Clone() method returns a new array boject containning all the elements in the original array.
Both are shallow copy.
For value type, it is no differece,  a bit by bit copy of the fileds is performed, in stack.
For reference type:
Shallow copy:  -> the reference is copied but the referred object is not, therefore the original object and its clone refer to the same object.
Deep copy:  Both the reference and the referred object are copied.

as, is

"as" operator is used for casting of objects to a type or a class.
"is" operator is used to check the compatibility of an object with a given type and it returns the result as bool.

attribute

C# provides developers a way to define declarative tags on certain entities e.g. Class, method etc. are called attributes. The attribute's information can be retrieved at runtime using Reflection.

B

Boxing & Unboxing

Boxing:  Implicit conversion of a value type (int, char etc.) to a reference type (object), is known as Boxing. In boxing process, a value type is being allocated on the heap rather than the stack.
Unboxing:
Explicit conversion of same reference type (which is being created by boxing process); back to a value type is known as unboxing. In unboxing process, boxed value type is unboxed from the heap and assigned to a value type which is being allocated on the stack.

C

Class & Struct

1. Structs are value types, while Classes are reference types.
2. Structs cannot inherit.

Const  & Readonly

Const is declared and initialized at complile time. The value cannot be changed after wards.
Readonly variables will be initialized only from the static constructor of the class. Readonly is used when we want to assign the value at run-time.

Compare 

Value type:  Using == or != operator.
Reference type:  Other override "bool Equails(object obj)" method Or implement Icomparable interface
But string type is different. The compiler automatically compares the values instead of references when == or != operators are used on string types.   If want to compare reference only, it can be done as follows: If ((object)str1 == (object)str2) {};

D

delegate

A delegate object encapsulates a referecne to a method. Like a function point in C++.

multicast delegate

Multicasting is the ability to create an invocation list, or chain of methods that will be automatically called when a delegate is invoked.  Such a chain is easy to create by using "+=" operator to add methods to the chain. To remove a method, use "-=".  Multicasting should always retur a void type because the value retruned by the last method because the return value of the entire delegate invocation.

Debug & Trace

Using Debug class for debug builds, use Trace class for both debug and release builds.

Dispose & Finalize

Dispose is used to free un-managed resource like files, database connects etc, Finalize can be used to free un-managed resources in the destructor.
Dispose is explicitly called by user code and the class which is implementing dispose method. Finalize is called by GC and cannot be called by user code.
There is performance costs associated with Finalize method since it doesn't clean the memory immediately by GC

H

HashTable

A hashtable is a collection of key-value pairs. It allows one wirtting thread and multi-threads of reading.

G

GAC(Global Assembly Cache)

The GAC is the Global Assembly Cache. Shared assemblies reside in the GAC; this allows applications to share assemblies instead of having the assembly distributed with each application. Versioning allows multiple assembly versions to exist in the GAC—applications can specify version numbers in the config file. The gacutil command line tool is used to manage the GAC.

It is located at %winroot%\assembly        (Assembly a1 = Assembly.Load(assemlyName);)

R

reflection

Reflection is the ability to find the information about types contained in an assembly at runtime.

ref & out

An argurment pased as ref must be initialized before passing to the method where as out parameter needs not to be intialized before passing to a method

S

Stack

This is a collection that abstrcts LIFO data structure in which initial capacity is 32.

static

static class:  a static class can not be instantiated. We can access the members of a static calss by using the class name itself
static members:  The static member is callable on a class even when no instance of the class has been created.

string

string is immutable, so each time a string is changed, a new instance in memory is created.

StringBuilder

StringBuilder is more efficent in cases where there is a large amount of string manipulation.  It is mutable.

U

Unit test

Positive test cases ( correct input,  correct output)
Negative test cases ( broken or missing data, wrong input, proper handling)
Excpetion test cases ( exceptions are thrown and caught properly).

Using

The using block is used to obtain a resource and use it and then automatically dipose of when the execution block completed.

最新文章

  1. Windows Server 2012 R2桌面化详细设置图解
  2. Android 实用工具Hierarchy Viewer实战
  3. 小结-Splay
  4. LCS (nlogn)
  5. 解决Volley请求网络数据返回的数据乱码
  6. Excel插件类库的设计思路
  7. 创建本地RPM源之更新系统旧版软件mysql
  8. Java基础知识强化之IO流笔记33:转换流之InputStreamReader的使用
  9. java反射机制 + Method.invoke解释 getMethod + 反射理解
  10. hdu1045
  11. Vmware 的三种网络连接方式
  12. mysql show processlist
  13. 高通secury boot过程
  14. html中div使用CSS实现水平/垂直居中的多种方式
  15. python自学第7天,函数,参数
  16. [No0000183]Parallel Programming with .NET-How PLINQ processes an IEnumerable<T> on multiple cores
  17. 由于无法验证发布者 所以windows阻止此软件
  18. JDBC连接数据库7个步骤
  19. Android 菜单和上下文演示
  20. VRChat简易教程3-往世界里导入模型和VRC接口初探

热门文章

  1. 樱花漫地集于我心,蝶舞纷飞祈愿相随 発生:genesis 发生:genesis
  2. winform界面闪退
  3. mysql 数据导出 常用总结
  4. git中Member设置为Developer也可以的
  5. python3读取chrome浏览器cookies
  6. UE4 编译后 不能正常使用Open Level 打开关卡解决方案:Open Level Blueprint Node not workin
  7. codeforces 682D(DP)
  8. JM8.6学习
  9. Linux内核分析——操作系统是如何工作的
  10. Map/Reduce 工作机制分析 --- 作业的执行流程