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