It should be said to know some of the basic concepts of some basic concepts, although the C # program has been written, but it has been turned over two days, and some things can be sucked. (The right as a summary of reading notes here ^ _ ^)
Several abbreviations:
CTS Common Type System Universal Type System
CLS Common Language Specification Public Language Specification
CLR Common Language Runtime Public Language Running
MSIL Microsoft Intermediate Language
GAC Global Assembly Cache Global Assembly Cache
Stack Stack Value Type
The hosted pile is similar to the pile of C, but does not consider it, it is called "hosting", managed
Space is much larger than the stack, but the accesses are slow
In the .NET environment, any type is both the value or the reference type, is an object system.Object
.NET has three value types: basic type, user-defined value type, struct, and enumeration type
C # lists String and Object as basic type, although they are reference types
Enumeration (bitmark) System.enum implements IFORMATTABLE
Reference Type: Class Type, Delegate (Type of Pointing Method, Security Pointer), array, string
No global variables and global functions in C #
Three must step:
Declaration commission;
2. Create a delegate object and bind it to a specific method;
3. Use the entrusted object to call this method
"C # Strings and Regular Expression Reference Manual" is more in-depth, there is time worth seeing.
Packing and unpacking
The boxed object contains a copy of the data in the value object. If the boxed object is modified, it does not affect the original value object.
Constants, compile time, change the corresponding assembly that needs to recompile the DLL in the DLL.
Static read-only variable, determine its value during operation
Database connection information, etc. should be placed in the configuration file, facing the deployment
Equals () .NET defines two forms of equivalents: reference equivalence, value equivalent
By default, system.Object.equals () test reference is equivalent, but Override is equivalent to the test value.
STACKFRAME and StackTrace in System.Diagnostics Access the stack framework and stack trace.
Method Type: Instance Method and Static Method.
REF is delivered by reference, method declarations and calls simultaneously using the REF keyword.
Output parameters, similar to REF is also passed by reference
Params Keyword Parameters must be the last parameter in the method declaration, and a large number of string operations should be used using System.Text.StringBuilder.
Try ... catch ... Finally
Properties and Operator JIT compilers can enable access to the attribute access than field access faster properties to quickly access object status.
Static property
Indexer container class, parent in the father and child relationship, a pair of multi-relations uses arraylist instead of array enhancements
Special way "operator"
Constructor and object lifecycle destroy object set object reference to null, and be careful not to have other references to the object, you can display destruction objects.
A large-scale destruction function in the application will have a negative impact on performance, handle the object destruction, and prefer the IDisposable interface, implement the Dispose method, execute in the Finalize destructor, but does not interrupt the garbage collection process.
Private constructor static constructor
Iclonable Clone Deep Copy MEMBERWISECOLONE Light Copy
Serialization and parallelization save object serialization, this technology is widely used in restoring applications, regularly acquires screenshot, save objects, and more. .NET Framework provides a wealth of XML serial model XSD.exe inferred XML mode, XML architecture / data type support utility
Events and entrusting event-based programming is the .NET Framework's cornerstone. The event mechanism in NET Framework uses the delegate (callback) event as a common method to release the event source object (object object) and the event receiver object ( The coupling between the subjects of the event notification).
Entrusted 3 steps similar to the method of the method in the application pointing to the object: 1 Declaring the delegate type 2 Create a delegate object, and bind the object binding method 3 using the delegate object to call the method
.NET Framework supports two types of commissioned average delegation: allowing an object to call a method multicast delegation: allowing a series of methods to be called on different objects to maintain a call object
Use the multicast commissioned step: 1 Define a delegate type 2 to write the same signature method as a delegate 3 to create a delegate object, bind it to the first method 4 that needs to be called, create another delegate object, bind to the next A method of calling the method 5 System.deLegate class, combined into an integrated multicast commission
Asynchronous entrustment can call the entrusted instance in the background thread: 1 Synchronous call, wait for the waiting method, the most common 2 asynchronous call, wait for the method to execute, endInvoke (), but before the method is executed, call 3 asynchronous Call, register a callback method, once the execution is completed, give notifications
The implementation of the event uses the event handler method of the delegate storage subscription, a typical OBServer design mode implements each event, you must specify the following two content: event name, the signature of the event (parameter list)
SYSTEM.EVENTHANDLER A built-in commissioned event cannot have a return type, only from the event source object to the one-way information flow of the event recipient object
Static incidents are rare, relative to general events
Defining the way you register, you don't need to define customized registration methods in most cases, but this technology can make your code simpler and fast. In Framework, most controls use customized registration methods.
Base classes and subclasses cannot reference the same entrusted inheritance and polymorphisms support, polymorphisms are supported by inheritance, regarding a type of object as a polymorphism of another type of instance
The base class is defined as Virtual. The derived class can rewrite the operation mark as the non-virtual method. It cannot be rewritten. The operation declaration is Virtual, and the implementation can be rewritten to abstract, and the implementation must be rewritten.
The class inherits from the System.Object structure inherits from System.ValeType, inherits from System.Object to the interface type it implements it, carefully, causing any objects that the interface is not supported by the reference type.
Code organization and metadata
Sharing assembly global assembly Cache Global Assembly Cache (GAC)
The minimum unit of assembly reusable
Metadata provides all the information required for the loading type and calling method during operation, metadata is the basis of metadata, which is also a fundamental thing in many systems. Understand this thing can be more in-depth understanding of an architecture.
View metadata The simplest method uses ILDASM.EXE / ADV or / Advancel option
The .NET module is a portable, executable (PE) format file
Only data module SDK contains a tool Assembly Linker (al.exe) using this tool to link these non-MISL modules to the program set to compile the file into modules, you must use the C # .NET command line compiler cannot use Visual Studio .NET Because it is always created, the program set, for example: csc / target: module csmod.cs csmod.netModule * .NetModule is a .NET module adding module to the assembly list: CSC / AddModule: csmod.netModule / AddModule: VBMOD. NetModule mainmod.cs
The program deployment deployment single assembly application is relatively simple and deployed directly with XCOPY. Private assembly deployment application is not complicated, put the needed program collection in the same folder or notify the CLR in what location lookup assembly
Deploying Sharing Settings Add to GAC Global Program Cache But Microsoft does not recommend application and GAC interdependent, try to use application private assembly deployment mode
Using the public-private key pair compiler to create a strong name to create a strong name, the corresponding public key is written in the assembly list Sn (STRONG NAME) SN / K *. SNKMSDN lookup "Keys Crytography" lookup Corresponding content Publickey longer digital public key token public key token SN / T * .snk
Install the shared assembly to the GACUTIL -I * .DLL of the GAC requires administrator privileges or finds .NET Framework Configuration in the control panel management tool.
1. Windows Forms has a commonly used property that usually not pays attention to: AcceptButton: Set the function of that button in response to the ENTER button in the table. The default value None CancelButton: Sets the function of the button to the corresponding reaction in the form of the form. Default value None
2. FORM When the form is called, the order is triggered by the event and method: load -> gotfocus -> activated -> closing -> closed -> deactivate -> lostfocus -> Dispose show method implicit call load, so if one The form even if it is not loaded if it is not loaded, the table will be loaded directly into the table. 3. When you need to run some code when you are displayed or hidden, put in Activated and Deactivate better than Gotfocus and Lostfocus events. 4. Receive a request from a Close, the form first run the code in the CLOSIG event, then the CLOSED code, so the data valid check is in the closing. 5. Hide method, even if there is no form to LOAD to memory, you will also display the form LOAD to memory when the HIDE is called, but not.