Вы находитесь на странице: 1из 31

.

NET �����Ż�������
ܽ

Ŀ¼

1. C#���Է���... 4

1.1 ,�����... 4

1.1.1 ���ⲻ ��Ҫ�Ķ��ⲻ �... 4

1.1.2 ��Ҫʹ�ÿ������ ��... 4

1.1.3 ʵ�� IDisposable �ӿ�... 4

1.2 String ����... 5

1.2.1 ʹ�� StringBuilder ����


ַl��... 5

1.2.2 ���ⲻ ��Ҫ�ĵ��� ToUpper �� ToLower ����... 5

1.2.3 ���Ŀմ��ȽϷ���... 6

1.3 ����
߳ ... 6

1.3.1 ����
߳ ��...
ͬ 6

1.3.2 ʹ�� ThreadStatic ��� NameDataSlot ��... 7

1.3.3 ���̱
߳�̼
���... 7

1.4 ����ϵͳ... 8

1.4.1 ����������ı���ʼ������... 8

1.4.2 ValueType �� ReferenceType. 8

1.4.3 ������ʹ������ʵ�����... 9

1.5 �쳣����... 10

1.5.1 ��Ҫ�Ե��쳣��... 10

1.5.2 ��Ҫ�Ե��쳣��Ϣ��. .. 10

1.5.3 ���ⲻ��Ҫ���‫��׳‬쳣... 10

1.5.4 ���ⲻ��Ҫ�������‫��׳‬쳣... 10

1.5.5 ���������
ָ ͨ õ�System.Exception. 10
쳣����Ҫʹ���

1.5.6 Ҫ��finally���ͷ�ռ�õ���Դ... 11

1.6 ����... 11

1.6.1 �������... 12

1.6.2 ��̬
��������... 12
1.6.3 ��̬��������
... 12

1.6.4 �Ƽ��ʹ��ⲻ ��... 12

1.7 ����뼼��... 13

1.7.1 ѭ��д��
. . . 13

1.7.2 ƴ 13 ...��ַ‫װ‬

1.7.3 ����}�μ����ⲻ ��... 13

1.7.4 ����}������14 ...��‫ת‬

1.7.5����������
ַ ����Ҫ� ַ ‫ ��� " "��� ˫��װ‬档... 14
ֱӰ����

1.7.6 ��StringBuilder����ʹ����
ַl�ӷ� ��+��. 14

1.7.7 ������ѭ�������������
��... 15

1.8 Hashtable. 15

1.8.1 Hashtable����... 15

1.8.2 ʹ��HashTale���������ֵ
伯�����͵����Σ�... 16

1.9 ����ʹ��ArrayList��... 16

1.10��XML�����ȡ���... 17

1.11 ����ʹ�õ����ú�Ƕ��ѭ
� ����... 17

1.12 ʹ���ʵ���Caching����4�������... 17

2. Ado.Net 17

2.1 Ӧ��Ado.net ��һЩ˼����. . . 18

2.2 Connection. 18

2.2.1 �‫����ڷ‬д�͹‫�ر‬l��... 18

2.2.2 ��ʽ�‫�ر‬l��... 18

2.2.3 ȷ��l�ӳ�����... 19

2.2.4 ��Ҫ����l��... 19

2.3 Command. 19

2.3.1 ʹ��ExecuteScalar��ExecuteNonQuery. 19

2.3.2 ʹ��Prepare. 19

2.3.3 ʹ�ð � ��... 19

2.4 DataReader 20
2.4.1 ��ʽ�‫�ر‬DataReader 20

2.4.2 ������ŷ��ʴ����������ŷ������� ... 20

2.4.3 ʹ�����ͻ�������������... 20

2.4.4 ʹ�ö�����...
� 20

2.5 DataSet 21

2.5.1 ��������ⲻ�����е�Ч��... 21

2. ʹ��DataView.. 21

3.ASP.NET. 21

3.1 �������г̣
�Reduce Round Trips��... 21

3.2 ��������ͳ�ʱ�����ҵ... 22

3.3 ʹ�û���... 22

3.4 ����
߳ ... 22

3.5 ϵͳ��Դ... 23

3.6 ҳ�洦��... 23

3.7 ViewState. 23

4.JScript 24

4.1 JScript�����Ż��Ļ�ⲻ ��... 24

4.2 JScript���Ա�����Ż�... 24

4.3 DOM���... 27

4.4 ����... 28

1. C#���Է���

1.1 ,�����
��,����ս�������������
ֹ Ĺ�������˳���Ľ�‫�׳‬ԣ��������þ��dz����������
ܶ ‫������� ���ڶ‬⡣

��1.1.1 ���ⲻ��Ҫ�Ķ��ⲻ�

������,����յĴ�‫۽‬ϸ ߣ�����C#��� �Ҫ��


��һ���������������
ѭDZ
���� �� ��Ҫ�Ķ��
���������������������������������
��������о�һЩ��������Ρ�

��1.1.1.1 ����ѭ���������� ��
�������������
� ÿ� ѭ����ı�‫����״‬
̬ ô��ѭ���з����������� �4�����ġ���Ч�����ǽ������ ᵽѭ�����洴
����

֧ д�������
��1.1.1.2 ����Ҫ�߼����

���������� ֧ вű� � õ� � ��� ôӦ�


ֻ ijЩ�߼���� ֻ ߼��߼ ֧ д�������
‫���� ڸڸڸڸ‬

��1.1.1.3 ʹ�ó� ���


������
ⴴ������

֮ Ĵ��룬
�������в�Ӧ������ new Decimal(0) ��
��ᵼ��С����Ƶ �����������գ ���ȷ ������ʹ ��D e cimal.Zero �� �������
ַ Ӧ�õ����Ƶij����С�
�����Լ�����ʱ��Ҳ����ѧϰ����������

��1.1.1.4 ʹ��StringBuilder����
ַl��

1.1.2 ��Ҫʹ�ÿ������ ��

֤
��������������ɴ�������ʱ���� Finalize ��������Ӷ�������ã�� Ա� �������
߼��ɴ�ʱ����Ȼ���Ե��õ� Finalize ������,��������������‫ڼ‬䣬
����һ������ȼ����̴���
߳ ֮ £�û�������Ķ����û����Щ��ġ���������Ϊ�գ������ľͺ������ 壬ֻ
ö��С�����
�ᵼ�������
ܽ ͣ ���ˣ ���Ҫʹ �ÿ յ ������

����ʵ������У��������������а�����룬����4��Ϊ����ⲻ��‫����͵�ע‬ɾ����ˣ�����
ֻ һ��տǣ���ʱӦ
‫��͵�ע����������ע‬ɾ���

��1.1.3 ʵ�� IDisposable �ӿ�

֧
��,�������ʵ�����
ֻ й����‫ڵ‬Ļ��գ ���������ķ��й���Դ ������ Window GDI ������
߼�l�ӣ�����������ͷ���Щ��Դ�кܴ����⡣߼����,�������5�����‫��ڽ‬ŵ������Ȼ��߼�l������
�� ѱ��‫ٺ‬ľ���
������‫ڴ‬滹����
ܳ Ļ���,������Dz ������еġ�

ͨ�
��C#�� IDisposable �ӿ���һ����ʽ�ͷ��� Դ�Ļ��ơ����ṩ using � 䣬������ʹ�÷�ʽ���������Զ����
try ... finally �飬���� finally ���е��� Dispose ������������������й���Դ����ӦΪ��ʵ��
֤ Դһ������ using ��䷶Χ�����õ���ʱ�ͷš�����‫��ڹ‬콡
IDisposable �߼ ‫��ڣ‬Ա���
‫�|��������׳‬ij���dz������壡

�������
ֹ Dispose �����������õ������һ�䣬 Ҫ�ṩ�����}�
ߵ���һ������Դ�ͷŵĹ���������ʱ��
ͬ� Dispose ���Ӧ����
System.GC.SuppressFinalize(this)������,������������‫ ���ٴ‬Finalize �����ˡ�

1.2 String ����


��1.2.1 ʹ�� StringBuilder ����
ַl��

ַ ᵼ�
��String �Dz����߼ʹ�� + ����l�����
´���һ���µ��������
ַ ַl�Ӵ����ǹ̶��ģ�������һ��
ѭ���У���Ӧ��ʹ�� StringBuilder
��4���� ַռ 䣬ֻ
ַl�ӹ�����Ϊ StringBuilder �‫���ڲ‬һ�� StringBuffer ��l�Ӳ����ÿ�η����µ���
�е�l�Ӻ������
ַ Buffer ��Сʱ���Ż������µ� Buffer �ռ 䣬���ʹ������£�

StringBuilder sb = new StringBuilder( 256 );

for ( int i = 0 ; i < Results.Count; i ++ )


{

sb.Append (Results[i]);

���l�Ӵ����ǹ̶
��IJ��� �
ֻм��Σ���ʱӦ������
ֱ + ��l�ӣ����������
ֳ
߼a�ʵ���ϣ��������Ѿ������Ż������>߼ӺŴ�����ò�ͬ�������� String.Concat
���������磺 String str = str1 + str2 + str3 + str4;

���ⲻ ����Ϊ String.Concat(str1, str2, str3, str4)���÷����‫��������ڲ‬ܵ String


���ȣ ������һ�Σ�������������������������Ρ���Ϊһ����
ͨ ������
ֵ ַl�Ӳ���10 ߼ ������ʱ����Ӧ��ʹ��
StringBuilder��

��������һ��ϸ��Ӧ ‫�ע‬⣺StringBuilder �‫ �ڲ‬Buffer ��ȱʡֵ ʵ��̫С����


Ϊ 16 �����ֵ
StringBuilder ��ʹ�ó�����Buffer �϶������·��䣬����һ����
ֵ 256 ��Ϊ Buffer
�ij�����
ֵ Ȼ������������������
ܼ ַ ȵĻ�����Ӧ�ð����ֵ
�� 4�趨 Buffer �ij���
ֵ ʹ�� new
StringBuilder(256) �ͽ � Buffer �ij�ʼ������Ϊ��256��

��1.2.2 ���ⲻ��Ҫ�ĵ��� ToUpper �� ToLower ����

��String�Dz����߼����ToUpper��ToLower�������ᵼ�
´���һ���µ������
ַ Ƶ�����ã�������Ƶ�������������
ַ Υ����ǰ�潲
���ġ�����Ƶ������������һ����

�����磬 bool.Parse���������Ѿ��Ǻ��Դ�Сд�ģ�����ʱ��Ҫ����ToLower������

����һ��dz��ձ�ij������
���������
ַȽϡ���Ч������ʹ�� Compare
�����������������Сд���ԵıȽϣ����Ҳ��ᴴ������
ַ

����

�� const string C_VALUE = "COMPARE";

����if (String.Compare(sVariable, C_VALUE, true) == 0)

����{

����Console.Write("SAME");

����}

֤
������һ�������ʹ�� HashTable ��ʱ����ʱ���߼������� key �Ĵ�Сд�Ƿ������‫ �������ڣ‬key ǿ��
ͬ
‫������ת‬д��Сд������ʵ���� HashTable �в��Ĺ�����ʽ����ȫ ֧ ֲ ú��Դ�Сд�� key: new
���
HashTable(StringComparer.OrdinalIgnoreCase)��

��1.2.3 ���Ŀմ��ȽϷ���

����String�����Length������0�Ƚ������ķ�����if (str.Length == 0)

���������String.Empty����
��Ƚ
մ� � ϣ�if (str == String.Empty)��if (str == "")

��‫��ע‬C#�‫���ڱ‬ʱ�Ὣ���������������
ַ�
���ŵ�������У�intern pool��������
ͬ ������
����� ‫����ظ‬䣬
1.3 ����
߳

1.3.1 ����
߳ ��

߳ ͬ�д���̳
������� DZ�Ϊ����Ҫ���ȿ������
߳� ͬ�
⡣C#��ṩ�� Monitor� Mutex��AutoResetEvent ��
ManualResetEvent ����4���ֱ ‫ װ‬Win32 ���‫���⼸������¼����������ٽ‬ ͬ
ֻ �����ơ� C#���ṩ��һ�� lock��
䣬����ʹ�ã���������Զ�����ʵ��� Monitor.Enter �� Monitor.Exit ���á�

��1.3.1.1 ��
� c��

� cȿ�����������Ҳ����� Ƿ�����ijһ�δ��롣 Ϊ������


���� ָ MethodImplOptions.Synchronized
���Խ ���Ƕ������������
�������磺

[MethodImpl(MethodImplOptions.Synchronized)]

public static SerialManager GetInstance()

if (instance == null )

instance = new SerialManager();

return instance;

ͨ������£�Ӧ��С���ķ�Χ��ʹϵ
ͬ � ø�õ��� ‫ ��ܡ‬䣬�������� Ϊ������һ������
ͳ�� �
�����ȷ�������е�
⣬� ÿ��� 붼
��Ҫ����������
��������

��1.3.1.2 ������

��ʹ�� lock �����������������



�� � ѡ� Type� this �Ϊ��Ŀ��
����� ‫�ר‬Ź���ij�Ա�� ��

��������Type��

ͬ
����Type�����Ӱ��һ��������� AppDomain�����͵�����ʵ��������
����߼������‫��������ص‬⣬�����߼ ���һЩ�
߼� 䣬� ‫���ڵ‬Ϊ������һ����
ܲ õ�ϰ�ߡ��������һ���� ͣ
ֻ static����������ҲӦ��� ���һ��
� staticij� Ա
��������
���
ô˳�Ա����Ϊ�����
��������

�������� this

���� this ��Ӱ���ʵ������з������������ obj �� A �� B }��������� A ����ʹ�� lock(this)


�Է����е�ij�δ������������������
�����������‫���ڣ‬Ϊij����B ����Ҳ��ʼʹ�� lock(this)
4����ͬ���Ϊ����ȫ��
�������ˣ����
��Ŀ�ġ�����
ҿ� ͬ� A ��� ������ˣ�����Ϊ�����
ͱ������������������
֪
߼�䣬����� ԣ���Ϊһ��|�õ�ϰ�ߣ��������ʹ�� lock(this) ����ַʽ��
ͬ
��ʹ��Ϊ��Ŀ�� ‫�ר‬Ź���ij�Ա��

ͬ
�������Ƽ�������ʽ���� new һ�� object ���� �ö�����������Ŀ�ġ�

ͬ ͬ
������ж�������Ҫ���������в���Ŀ�ģ��� ô�Ϳ���ΪЩ�
������� ͬ
ֱb��������Ա��
�����
��

ͬ
1.3.1.4 ������

��C#�����������
ּ ṩ��}�����
ַ ͬ�����ƣ�Synchronized ��‫ ���װ‬SyncRoot ���ԡ�

// Creates and initializes a new ArrayList

ArrayList myAL = new ArrayList();

myAL.Add( " The " );

myAL.Add( " quick " );

myAL.Add( " brown " );

myAL.Add( " fox " );

// Creates a synchronized wrapper around the ArrayList

ArrayList mySyncdAL = ArrayList.Synchronized(myAL);

֤
���� Synchronized �����ⲻ ��һ��ɱ����в������̰ ͬ�
�ȫ�������϶��
߳ ��� mySyncdAL[0] =
mySyncdAL[0] + "test" ��һ��䣬�z�дһ��Ҫ�õ�}����һ�䣬�� Ч�ʲ��ߡ��Ƽ�ʹ�� SyncRoot
��� ԣ�������ȽϾ�ϸ�Ŀ��ơ�

1.3.2 ʹ�� ThreadStatic ��� NameDataSlot ��

����ȡ NameDataSlot �� Thread.GetData �� Thread.SetData ������Ҫ��


� ͬ�����漰}����һ����
߳ ����
LocalDataStore.SetData ������Ҫ�� AppDomain һ��������һ����
ThreadNative.GetDomainLocalStore ������Ҫ�� Process һ���������һЩ�‫�ײ‬Ļ���ʹ����
NameDataSlot��������ϵͳ������� ‫����������ص‬⡣

������������ķ�����ʹ�� ThreadStatic ����ʾ�����£�

public sealed class InvokeContext

[ThreadStatic]

private static InvokeContext current;


private Hashtable maps = new Hashtable();

1.3.3 ���̱
߳�̼
���

��1.3.3.1 ʹ�� Double Check ���������

internal IDictionary KeyTable

get

if ( this ._keyTable == null )

lock ( base ._lock)

if ( this ._keyTable == null )

this ._keyTable = new Hashtable();

return this ._keyTable;

������������Ǻ����
ܳ һ������
ֱ һ���� lock
����ͻ��ֱӴ��������ˣ��������ȫ����Ϊ�� lock �����֮ǰ�������Ѿ��ж���̽ ߳ 뵽
��
�˵ �һ �� if ����С ����ӵ ‫ ���ڶ‬if ��䣬������� 䣬�
‫��������ظ‬µ�ʵ������ɵ�ʵ������������������߼������ƻ����
��ʲ ߱� ô����Ӧ����ʹ�� Double Check

1.4 ����ϵͳ
��1.4.1 ����������ı���ʼ������

֤
��CLR����� ж����‫���ڷ‬ǰ�ѳ�ʼ���������ǽ�������‫����ڴ‬㡣
��ˣ�����Ҫ�������³�ʼ��Ϊ0��false��null��
������ǴӶѶ��Ǵ�ջ�Ϸ��䣬����C#���������䣬����� ʹ����δ���
����Ҫ ‫����ע‬ǣ������еľֲ ֵľ���
ֲ ߼�������
‫ڼ‬伴�ⲻ ������Ҫ��Ϊ�����ӡ����������ij�Ա �� Ҳ��
�������
ֵ ͬ
}�ߵĻ�����ȫ����

��1.4.2 ValueType �� ReferenceType

1.4.2.1 �����÷�ʽ�������
ֵ Ͳ���

ֵ ʹӵ���ջ���䣬�������ʹ��йܶѷ ��䣬
�����
���������������
ֵ ʱ��Ĭ�ϻ���в���
���ƣ�����������
ֵ ֵ ͷ���Ч���ϵ����ơ���Ϊһ����ɣ��
����÷�ʽ�������
ֵ Ͳ������������‫�ܡ‬

��1.4.2.2 Ϊ ValueType �ṩ Equals ����

ֵ ValueType.Equals ����ʹ���˷��似���?
��.net Ĭ��ʵ��
�����4������г�Ա ����
ֵ Ƚϣ����Ч�ʼ��͡�������DZ�д�������� ֵ Equals
����Ҫ���õ������罫����
ֵ ŵ� HashTable �У�����ô��Ӧ������ Equals ������

public struct Rectangle

public double Length;

public double Breadth;

public override bool Equals ( object ob)

if (ob is Rectangle)

return Equels ((Rectangle)ob))

else

return false ;

private bool Equals (Rectangle rect)

return this .Length == rect.Length && this .Breadth == rect.Breach;

1.4.2.3 ����‫���Ͳ��װ‬

��C#���������
ֵ ͺ������������ ֮ Զ� ‫��Ͳ��ת����������װ‬䣬
‫����װ‬Ҫ�Ӷ��Ϸ����� ��� ����
ֵ һ��������ġ������һ��̷
�����ѭ ���л�����Ϊ�‫ײ‬㷽
����Ƶ�����ã���Ӧ�þ����‫ۼ‬Ƶ�ЧӦ��
��һ�‫־‬
��������γ�����ʹ�ü�������ʱ�����磺

ArrayList al = new ArrayList();

for ( int i = 0 ; i < 1000 ; i ++ )

al.Add(i); // Implicitly boxed because Add() takes an object

int f = ( int )al[ 0 ]; // The element is unboxed

���ǵõ��ģ��������ʹ������������ôƵ����ʹ��һ����� ֵ ͵����ƻ�ܿ챻�ľ������磬
ֵ ͵Ļ������
��һ������
ֵ ѹ��һ ���ж������͵ �Ⱥ ��������� ‫�װ‬䣬��� ܺ ô��������‫������ڣ‬ǵ���Ĵ����
‫�����ڰ‬Ϊ�����������
ֵ 䣬 Ͱ�����Ϊ ���� ��
ѧ���� ֮ 4������ʱ��

1.4.3 ������ʹ������ʵ�����

? ������ʹ������ʵ�����4������‫��ݣ‬Ӷ��������‫����ת‬

? ʹ�÷���4����Ⱥ�����������߼ṹ������������ʱ �����Ǿ Ϳ ��Ա�ʵ ��4 � 洢


�պú ��ʵ ����͡����ʡ �� ‫���������ת‬/��‫����װ‬ʱ�䣬

ͣ�������
? ��C#��ʹ��as,����is���߼���is��4�䣬����� Ƿ���Ա���Ϊij������������� Dz�������
ͨ�
‫����͵����������ת‬á����ԣ�������� is��һ����Ľ��ʱ��������Ӧ�� cast������Ч����
ִ }��cast�����
�as�߼��ʱ��������ã ��
� castΪ�����͵����� � null������䣬nullȻ������ϲ��������顣
ã ���� Բ
����4˵��As����Ҫ��is������50%��

1.5 �쳣����
���쳣 Ҳ�������
ִ Եĵ��������봫 ͳ��������ķ�ʽ��ȣ��쳣
��ǿ���Եģ�����5���Ƿ�����˱�������������
�д��������Ĵ�� 룩��ǿ���͵ġ������зḻ���쳣
��Ϣ���������ջ����

��1.5.1 ��Ҫ�Ե��쳣��

�������쳣���������Ҫ � ����ǣ���Ҫ�
�� Ե��쳣����������������‫�߼أ������ڱ‬д��
‫�������׳‬Ŵ�ij ���dz���Ҫ ������ ��һ ��˵ �������Dz�Ҫ ������Щ� 䣬� ����� ܴ 쳣��

���Ե��쳣�Ǽ����õ�ϰ�ߣ���Ϊ������˽�����������һ�������߼�
ִ ��쳣
λ���⽫�dz�'� ѡ����������� ȫ�Ե��
ֻ 쳣��Ϣд����‫־‬
�ķ�ʽ�⣬��� ͬ �‫�ס‬
�ļ����������ദ�����Ҳ��

��1.5.2 ��Ҫ�Ե��쳣��Ϣ��
����Щ������Ȼ�‫����׳‬쳣����ȴ���쳣��Ϣ�Ե��ˡ�

��Ϊ�쳣��¶�꾡����Ϣ�dz���Ա�������
ְ ‫���ڡ�������ڱ‬䣬ʼ�쳣
��Ϣ�����ǰ���¸��Ӹ�ḻ�͸����Ի������‫���ݣ‬ô��ⲻʼ���쳣��Ϣ��
ֱ չʾҲҪǿ�ö߼ǧ��Ҫ�Ե��
쳣��

��1.5.3 ���ⲻ��Ҫ���‫��׳‬쳣

���‫��׳‬쳣�Ͳ����쳣������ıȽϴ�IJ����‫߼��ڿ‬ ͨ
�����£�Ӧ�����Ƴ���� ‫��߼������׳‬Ҫ����Ҫ���쳣
�������‫�ص‬һ�������������쳣 4���ƴ����
‫߼��������ڼ‬
ܶ �������������� ͨ
ܻ ø�Ϊ���ŵĽ�������������Ӧ� ñ�� �

��1.5.4 ���ⲻ��Ҫ�������‫��׳‬쳣

�������Ϊ�˰�‫�װ‬쳣��Ŀ�ģ�����������Ϣ���‫�����װ‬쳣������ô�Ǻ���ġ������в�� ‫��ٴ‬룬�����쳣
û�����κδ����� ‫��⽫��ٴ��׳‬ν�����һ�β����쳣���‫��׳‬쳣����ģ����������˺���

1.5.5 ���������
ָ 쳣����Ҫʹ���
�õ�System.Exception.���

//����

����try

����{

����}

����catch(Exception exc)

����{

��

����}

����//�Ƽ�

����try

����{

����

����}

����catch(System.NullReferenceException exc)

����{
����

����}

����catch(System.ArgumentOutOfRangeException exc)

����{

����

����}

����catch(System.InvalidCastException exc)

����{

����

����}

1.5.6 Ҫ��finally���ͷ�ռ�õ���Դ

ʹ��Try...catch...finallyʱ��
Ҫ��finally���ͷ�ռ�õ���Դ��l�ӣ��ļ���ȣ���Ȼ��Catch�������ռ�õ���Դ�����ͷš�

����try

����{

����...

����}

����catch

����{...}

����finally

����{

����conntion.close()

����}

1.6 ����
��������һ���
ܻ ļ���������‫�ڼ‬ľ�̬��‫��ת‬Ϊ�ӳ ‫�ٵ������ڼ‬Ķ�̬
����‫ܶں‬ೡ���£��‫߼������ر‬
���ƣ������Ի�����
����)չ�ļ�������
ܹ ����ȣ���̬
4���������뾲̬ ����������ɽϴ���˺���

��1.6.1 �������

��type comparison �������жϣ���Ҫ��( is �� typeof }���������ʵ���ϵ� GetType


���á����������͵���ģ��������迼���Ż����ⲻ ‫ ��ע‬typeof �����ȶ���ʵ���ϵ� GetType ����Ҫ�죬ֻ
Ҫ����������ʹ�� typeof �����

��member enumeration �� ��Աö�‫����ڷ‬٣��ʷ�����


‫ �ص‬䣬����� Ϣ������Assembly.GetModule��Module.GetType��Type�����ϵ�IsInterf
ace��IsPublic��GetMethod��GetMethods��GetProperty��GetProperties��GetConstructor��
�õȡ�������߼��ⲻCLR���棬���������
ַ ĵ�������Էdz�� ������� ߼������Ƶ�Ȳ���ܸߣ��������忴
������ʧ�̶
��еȡ�

��member
invocation����Ա���ã���(��̬
���������̬
���ö��������Ҫ��Activator.CreateInstance��Type.In
vokeMember�ȡ�

��1.6.2 ��̬
��������

֧
��C#��Ҫ�� 5 ��
ֶ̬
��������ķ�ʽ��

����1. Type.InvokeMember

����2. ContructorInfo.Invoke

����3. Activator.CreateInstance(Type)

����4. Activator.CreateInstance(assemblyName, typeName)

����5. Assembly.CreateInstance(typeName)

�������Ƿ�ʽ 3 ���� Direct Create �IJ�����һ����  ֮ ‫�ڣ‬Լ�� 7 ����ˮƽ������ʽ��������


�� � 40
�����ϣ�������Ƿ�ʽ 4 ��Ҫ�����������

��1.6.3 ��̬
��������

���������÷�Ϊ�����‫ڵ����ڰ‬䣬������ ‫ڵ‬Ķ�̬ ֣
��}���� ΪEarly-Bound Invocation��Late-Bound
Invocation��Early-Bound Invocation��ϸ��ΪDirect-call��Interface-call��Delegate-
call��Late-Bound
Invocation��Ҫ��Type.InvokeMember��MethodBase.Invoke�����������ʹ��LCG� Lightweight
Code Generation���������IL����4ʵ��
ֶ̬
���á�

���Ӳ�� Խ �����Direct
Call��Type.InvokeMemberҪ�ӽ ������������
� MethodBase.Invoke�Ȼ�� Type.InvokeMemberҪ����
���Direct Call����270�����ҡ ��ɼ�̬
�������õ������Ƿdz����µġ����ǵĽ����ǣ����Ҫ�����
‫ ������ض‬䣬��� Ҫʹ�ã�

��1.6.4 �Ƽ��ʹ��ⲻ��

��ģʽ

����1�� �����‫ ���÷�ʹ������ܣ‬Ͷ�̬


��

����2�� ʹ�ý߼ ‫�÷��ڵ‬ʽ����̬����Ϊ���‫�ڰ‬


����3�� ʹ��Activator.CreateInstance(Type)��ʽ��̬
��������
����4�� ʹ��typeof��������GetType����

����ģʽ

����1�� ���ѻ��Type������£�ȴʹ��Assembly.CreateInstance(type.FullName)

1.7 ����뼼��
Ļ���뼼�ɡ��Դ��߼‫ڹڸڸڸ‬
����������һЩӦ�ó����£�����������߼ �·���Ĵ��룬
ͨ�
����������Ż����Ǻ�������ġ���������Բ���Ҫ�
� ���һ� ֺõ�ϰ��Ҳ��������ġ�

��1.7.1 ѭ��д��

����� ԰�����ж����
ѭ����������þ ֲ ߼��¼��4������
��� ֲ ߼����������Ż�Ϊ��
ֱ ʹ�üĴ�����������Ӷ
� ѻջ
���

з���ı��‫ٶ‬ȿ 졣�����ʵ��Ǹ��Ӽ������ԵĻ�������Ч������ԡ�for (int i = 0, j
= collection.GetIndexOf(item); i < j; i++)

����Ҫ˵����ǣ�����д������CLR�������Count����û�����壬ⲻ���DZ������Ѿ�������
ַʽ�����
‫���ر‬Ż���

��1.7.2 ƴ ‫��װ‬
ַ

֮
��ƴ ‫������װ‬ �Ч��д������Щ������ѭ�������‫ڴ‬䣬������ Ϊ1������д���ĵ�Ч�͸�Ϊ�����ˣ�
ɾ���Ǻ߼

public static string ToString(MetadataKey entityKey)

string str = "" ;

object [] vals = entityKey.values;

for ( int i = 0 ; i < vals.Length; i ++ )

str += " , " + vals[i].ToString();

return str == "" ? "" : str.Remove( 0 , 1 );

�Ƽ������д����

if (str.Length == 0 )

str = vals[i].ToString();

else

str += " , " + vals[i].ToString();


��ʵ����д���dz���Ȼ������Ч�ʺܸߣ���ȫ����Ҫ�ø�Remove������4��ȥ��

��1.7.3 ����}�μ����ⲻ��

����ȡ���� � ��ʱ����ʱ��Ҫ���
��� �Ƿ
�������
��� ‫��ڡ‬
���������ȵ���ContainsKey����Contains��������Ȼ���
‫�ٻ‬ȡ�����‫�����ء‬д���dz�����߼���

ֱӻ�ȡ����Ȼ ���ж϶ ����Ƿ �Ϊ null4ȷ ��Ԫ ���Ƿ ��� ‫�����ڡ‬Hashta


���������Ч�ʣ��������
ble������Խ�ʡһ��GetHashCode���ú�n��Equals�Ƚϡ�

�������ʾ��

public IData GetItemByID(Guid id)

IData data1 = null ;

if ( this .idTable.ContainsKey(id.ToString())

data1 = this .idTable[id.ToString()] as IData;

return data1;

��ʵ��ȫ����һ�д�����ɣ�return this.idTable[id] as IData;

��1.7.4 ����}������‫��ת‬

����������ʾ�����а���}������‫����ת‬

if (obj is SomeType)

SomeType st = (SomeType)obj;

st.SomeTypeMethod();

Ч�ʸ�ߵ������£�

SomeType st = obj as SomeType;


if (st != null )

st.SomeTypeMethod();

1.7.5����������
ַ ����Ҫ� ַ ‫���" "���˫��װ‬档
ֱӰ����

//����

����//

����MyObject obj = new MyObject();

����obj.Status = "ACTIVE";

����//�Ƽ�

����const string C_STATUS = "ACTIVE";

����MyObject obj = new MyObject();

����obj.Status = C_STATUS;

����1.7.6 ��StringBuilder����ʹ����
ַl�ӷ� ��+��

����//����

����String sXML = " ";

����sXML += "";

����sXML += "Data";

����sXML += "";

����sXML += "";

����//�Ƽ�

����StringBuilder sbXML = new StringBuilder();

����sbXML.Append(" ");

����sbXML.Append("");
����sbXML.Append("Data");

����sbXML.Append("");

����sbXML.Append("");

��1.7.7 ������ѭ�������������

Ӧ����ѭ����������������
�������ʼ����
ѭ� � � � � � � �� � � �

//����

����for(int i=0; i<10; i++)

����{

����SomeClass objSC = new SomeClass();

����}

����//�Ƽ�

����SomeClass objSC = null;

����for(int i=0; i<10; i++)

����{

objSC = new SomeClass();

��

1.8 Hashtable
1.8.1 Hashtable���ⲻ
Hashtable��һ��ʹ�÷dz�Ƶ���Ļ������͡���Ҫ���Ӱ��
Hashtable��Ч����}�����‫�أ‬һ��ɢ���루
GetHashCode�����������ǵ��
ֵȽϣ�Equals��������Hashtable����ʹ�ü��ɢ���뽫
���������
ֲ �ͬ Ĵ 洢 Ͱ�У�����‫��ڸ��ض‬Ĵ 洢 Ͱ��ʹ�ü��Equals�������в��ҡ�

ͬ ͬ
��|�õ�ɢ�����ǵ�һλ�����‫�������������أ‬ÿ���ļ��в���ɢ��� 롣
Equals����Ҳ����Ҫ����Ϊɢ����
ֻ Ҫ��һ�Σ���洢
Ͱ�в��Ҽ������Ҫ���Ρ���ʵ�ʾ��䣬��ʹ��Hashtableʱ��Equals���������һ���ռ��һ���
��ϡ�
System.Object���ṩ��Ĭ�ϵ�GetHashCodeʵ�� ֣ ʹ�ö������‫��ڴ‬еĵ��� ַ Ϊɢ���롣
�������һ����Hashtable4�����������ӣ�ÿ�θ�߼��߼�OQL���ʽ�����һ��ExpressionList�����‫���ٵ‬Q
ueryCompiler�ķ�������õ�CompiledQuery������ExpressionList�����CompiledQuery������Ϊ�
��
ֵԴ 洢��Hashtable�С�ExpressionList����û������GetHashCodeʵ��� ֣ 䣬
��ArrayListҲû�У��������� õľ��� System.Object��� ֡
GetHashCode ʵ������ ExpressionList�����
ÿ�ι��죬
������HashCodeÿ�ζ������������
ͬ CompiledQueryCache���û����������� � á���СС���� ©��4���‫�ش‬
��������⣬���‫���ڽ‬OQL���ʽƵ��������CompiledQueryCache���������ɷ������‫�ڴ‬й©������������
֣
�����������ṩһ��ʵ�������� ɢ� � � � Ϊ � � ԰ 0 � � � � Ȼ � � ᵼ � � � � � ж � � � � ۵�ͬһ��洢
Ͱ�У�Ч�ʲ��‫��ߣ������ٿ‬Խ����‫�ڴ‬й©���⡣��Ȼ�����ջ��ǻ�ʵ��һ���Ч��GetHashCode�����ġ�


�����Ͻ�����ЩHashtable�����
� �Ҫ��
� �ϣ
������
� ⣺���ʹ��
� Hashtable�Ӧ� ü��һ�¶����Ƿ��ṩ���ʵ�
֡
��GetHashCode��Equals����ʵ������� п�����
ܳ Ч�ʲ��߼�����ⲻ����Ϊ��������

1.8.2 ʹ��HashTale���������ֵ
伯�����͵����Σ�

�����ֵ
伯������(��StringDictionary,NameValueCollection,HybridCollection)���������
߼�ʱ�����ʹ��HashTable����

ܶ Ƿ��ͼ����߼�ж�Ӧ�ķ��ͼ����߼�����dz��õķǷԼ
�� ͼ�����������������������
�� ������ ���Ӧ�ķ�� ���� ߼

�Ƿ��ͼ����� ���ͼ�����

ArrayList List<T>

HashTable DIctionary<T>

Queue Queue<T>

Stack Stack<T>

SortedList SortedList<T>

�����õıȽ϶�ķǷ��ͼ�������Ҫ�� ArrayList�� �� HashTable�߼���Ǿ�����HashTable 4�洢


��Ҫд�뵽��‫���߼���߼��ص‬Ϣ�������� ֮ Ҫ���ϵĽ������͵�‫���������ת‬ϵͳ
‫���Ͳ��װ‬ĸ�����������Dz��߼�����������ȷ���Ļ� �� Dictionary<TKey,TValue>
������4�洢��߼ͷ�����ˣ�����������Ҫ�‫���������ڵ‬վ�д 洢�û��Ĺ��
߼��Ϣ( ��Ʒ���Ӧ����Ʒ����)ʱ����ȫ������ Dictionary<string, int> 4�洢
���߼��Ϣ������Ҫ�κε�����‫����ת‬

1.9 ����ʹ��ArrayList��
������Ϊ�κζ�����ӵ�ArrayList��Ҫ����ΪSystem.Object������
ͣ ArrayListȡ�����ʱ��Ҫ�����ʵ�ʵ��
��͡
�����ʹ���Զ���ļ������ʹ���ArrayList��.net
ͣ ͣ ͣ
2.0�ṩ��һ���µ������з�������һ��ǿ����ʹ� ÷��ͼ��� ˷�� ����
��ϾͿ���ķ�����������
���
Ͳ
Ա ��������� ���������������‫�ܡ‬

����
1.10��XML�����ȡ���
��������
ֻǴ�XML�����ȡ��‫����ݣ‬
ֻu�XPathDocument����XMLDocument,�����������

//����

����XmlDocument xmld = new XmlDocument();

����xmld.LoadXml(sXML);

����txtName.Text = xmld.SelectSingleNode("/packet/child").InnerText;

����.

����//�Ƽ�

����XPathDocument xmldContext = new XPathDocument(new


StringReader(oContext.Value));

����XPathNavigator xnav = xmldContext.CreateNavigator();

����XPathNodeIterator xpNodeIter = xnav.Select("packet/child");

����iCount = xpNodeIter.Count;

����xpNodeIter = xnav.SelectDescendants(XPathNodeType.Element, false);

����while(xpNodeIter.MoveNext())

����{

����sCurrValues += xpNodeIter.Current.Value+"~";

����}

����}

��1.11 ����ʹ�õ����ú�Ƕ��ѭ
� ����
ʹ�����ǻ�����Ӱ�����‫��ܣ��ڲ‬ò��õ�ʱ���ʹ�á�

��1.12 ʹ���ʵ���Caching����4�������
��2. Ado.Net

2.1 Ӧ��Ado.net��һЩ˼����
����1. ������ʹ�õķ�ʽ4����������
��ʲ�

����2. ������ ‫��ⲻ ����ݣ‬Ҫ�IJ���

����3. ʹ�÷����ʻ�����l��

����4. ��Ҫʱ���룬�����ͷ�
����5. �‫ر‬տɹ‫ر‬յ���Դ

����6. ������

����7. �����Ҫ�����

����8. ѡ ���ʵ�����������

����9. ʹ�ô 洢���

2.2 Connection
����߼�l����һ������
ֹ Դ�����Ҵ��‫ر‬յĿ���ϴ�Ado.netĬ��������l�ӳ ߼��ƣ��‫�ر‬l�Ӳ�����Ĺ ‫�����ر‬l
�ӣ����
ֻǰ�l�ӷŻ ‫�ص‬l�ӳ��С���Ϊ���й����l����Դʼ������� ߼ģ������ʹ��l�Ӻ���� ‫�ر‬l�ӣ���ô�
��п��߼
�������l�ӵ��̱߳�����‫��ס‬Ӱ�����ϵͳ�������
ܱ �֡

��2.2.1 �‫����ڷ‬дⲻⲻ‫�ر‬l��

�����ⲻ���м��㺬 �壺

����1. ��ҪĿ����Ϊ�����Ҫʱ����;����ͷ�

����2. ��Ҫ����Ĺ��캯���д�l�ӡ�����������ͷ�l�ӡ���Ϊ�⽫��5��,����߼���,��������
ֻ ‫�ڴ‬Ӱ�죬
����ʱ��

֮ 䣬�� l�ӣ���������l�ӱ��߼�
����3. ��Ҫ�‫����ڷ‬ ִ ʱ���

֮ 䣬
����ǿ��һ���‫����ڷ‬
��l�ӵ�Σ��������ѹf���������һ�������������û���ʱ�������Ҫ�ȱ� İ�����ܾþ��õ�l�ӳ��е�����l�ӡ�
�����������ΪA������һ�� �l�Ӵ��߼���B��������B����������
ֵ һ�����дⲻⲻ‫�ر‬l�ӵ�C��������A�����
���������‫ڼ‬䣬��������Ҫռ��}��l�Ӳ���� ܹ ɹ �����������е �һ ��l ��ռ ��ʱ � 仹�
‫ر‬䣬�������� l�ӳ���Դ���ţ�Ӱ�������ϵͳ�Ŀ������ԣ�

2.2.2 ��ʽ�‫�ر‬l��

ܲ õIJ��ԡ��Ƽ�ʹ��using�����ʽ�‫�ر‬l�ӣ��
��Connection��������,�����ʱ���Ա��‫ر‬գ�����5,������Ǻ��
�����

using (SqlConnection conn = new SqlConnection(connString))

conn.Open();

} // Dispose is automatically called on the conn variable here

2.2.3 ȷ��l�ӳ�����

ͬ l�Ӵ���bl�ӳ ‫����أ‬Ӧ��ȷ��l�Ӵ��������������û���‫���ص‬Ϣ��
��Ado.net��Ϊÿ����
��� ⣬Ҫ ‫��ע‬l�Ӵ��Ǵ�Сд��еġ�

��2.2.4 ��Ҫ����l��

�����磬��l�ӻ��浽 Session��Application�С�������l�ӳ ‫�����ص‬£�������û���κ����塣

��2.3 Command
��2.3.1 ʹ��ExecuteScalar��ExecuteNonQuery

������뷵
����Count(*)��Sum(Price)��Avg(Quantity)����ĵ�������
ֵ ʹ��ExecuteScalar������ExecuteSc
alar���‫�ص‬һ�е�һ�е����������
ֵ ֵ ‫���ء‬Ϊ����һ��������ɣ�����ExecuteScalar������˴��룬
�����
����������‫�ܡ‬

��ʹ�ò������е�SQL���ʱ�������‫�߼���ݣ‬INSERT��UPDATE��DELETE������������ⲻ�����
ֵ ʹ��Execut
eNonQuery������������‫�����ڴ‬DataReader���κβ���Ҫ���

��2.3.2 ʹ��Prepare

ִ ͬ һSQL����Σ��ɿ���ʹ��Prepare��������Ч�ʡ���Ҫ‫����ע‬ǣ����
������Ҫ�‫���ظ‬ ����
ֻ ִ һ�λ�}�Σ�����ȫû�б
�Ҫ�����磺

cmd.CommandText = "insert into Table1 ( Col1, Col2 ) values ( @val1, @val2 )";

cmd.Parameters.Add( "@val1", SqlDbType.Int, 4, "Col1" );

cms.Parameters.Add( "@val2", SqlDbType.NChar, 50, "Col2");

cmd.Parameters[0].Value = 1;

cmd.Parameters[1].Value = "XXX";

cmd.Prepare();

cmd.ExecuteNonQuery();

cmd.Parameters[0].Value = 2;

cmd.Parameters[1].Value = "YYY";

cmd.ExecuteNonQuery();

cmd.Parameters[0].Value = 3;

cmd.Parameters[1].Value = "ZZZ";

cmd.ExecuteNonQuery();
2.3.3 ʹ�ð� ��

��SQL�����Ҫ�ȱ�������ִмƻ���Ȼ�����
ִС����ʹ�ð���ķ�ʽ����ô���� ִмƻ��Ϳ��
�����
Ա������
ִе�SQ
L������á�������ֱӰѲ���ϲ�����SQL����У����‫ֵ���ڲ‬
ǧ��� � �
ִмƻ������Ա������ˡ���������Prepare
һ�‫���ڸ‬ʾ�����Ѳ�����
ֱ д��insert����У���ô������Ĵε��ý���Ҫ�����Ĵ��
ֵ ִмƻ���

��Ϊ��������������������ʧ��Ҫ��һ��ʹ�ð���ʽ��

��2.4 DataReader
��DataReader���ʺ��‫����ڷ‬ ͬ
ֻuĵ�����߼�����DataSet������ ߼�����ȫ�����‫��ڴ‬У������治
�Ϸ����read����һ��������߼������е���߼��ȡ��������Դ����һ����߼������С������߼
4����� ⣬DataReader����l�ӣ�DataSet����l�ӶϿ���

��2.4.1 ��ʽ�‫�ر‬DataReader

����l�����ƣ�Ҳ��Ҫ��ʽ�‫�ر‬DataReader����� ⣬����� DataReader��j��Connection��ΪDataReader�


���Ļ����ɿ���ʹ��Command�����ExecuteReader(CommandBehavior.CloseConnection)��ʽ������
֤ DataReader�‫�ر‬ʱ��ʱ�Զ�
Ա��� ͬ �
‫�ر‬Connection��

��2.4.2 ������ŷ��ʴ����������ŷ�������

����Row�з���ij�����ԣ�ʹ������ŵķ�ʽ��ʹ����Ʒ�ʽ��ϸ���
����
ߡ� Ƶ�����
�� ã����� ѭ���У���ô�ɿ��Ǵ
����Ż���ʾ�����£�

cmd.CommandText = "select Col1, Col2 from Table1" ;

SqlDataReader dr = cmd.ExecuteReader();

int col1 = dr.GetOrdinal("Col1");

int col2 = dr.GetOrdinal("Col2");

while (dr.Read())

Console.WriteLine( dr[col1] + "_" + dr[col2]);

2.4.3 ʹ�����ͻ�������������

����Row�з���ij�����ԣ���GetString��GetInt32������ʽ�����
ָ ͵ķ�������Ч�ʽ��
�õ�GetValue����

�ϸ��ߣ���Ϊ����Ҫ������‫����ת‬

��2.4.4 ʹ�ö�����

�����������
ֳ Կ���һ�η��4�߼���‫�������ض‬罻����������Ч�ʡ�ʾ�����£�
cmd.CommandText = "StoredProcedureName"; // The stored procedure returns multiple
result sets.

SqlDataReader dr = cmd.ExecuteReader();

while (dr.read())

// read first result set

dr.NextResult();

while (dr.read())

//

2.5 DataSet
��2.5.1 ��������ⲻ�����е�Ч��

�������Ҫ���������У��������������}��
ַʽ��

��1. ����DataTable��PrimaryKey

�������‫�ڰ‬PrimaryKey�����е����‫���ע‬ʱӦ����DataTable.Rows.Find������һ�����
õ Select�����
�����������

��2. ʹ��DataView

�������‫�ڰ‬Non-
SortOrder��� ʾ��
PrimaryKey�����е�����ΪDataTable����һ��DataView������� ָ b����˺�ʹ��Find��
FindRows������

3.ASP.NET
3.1 �������г̣
�Reduce Round Trips��
֮
��ʹ������ķ������Լ���Web�������Browser������ ̣
г�

��1. ΪBrowser���û���

�������������
ֵ Ǿ�̬
�Ļ�仯���‫ڽ‬ϳ���Ӧ����Browser���棬���ⲻ �������http����

2. ����ҳ�����

�������‫���ܣ‬Ԫ����ҳ��������������һ�δ��͵��ͻ��ˣ�����Ա����������������������������
���Ƶ������С����������ɵĶ����� 罻
������������ַʽ��ҳ�洦�����֮ǰ�ͻ����߼�����ҳ�����‫�������ݣ‬һ��ҳ��ij
ߴ�ϴ�Ļ����ɿ���ʹ��Response.Flush�������÷���ǿ��������Ϊ�
ֹ‫������ڻ‬е����‫���ݣ‬Ӧ�����ú�����㷨
���Ƶ���Response.Flush�����Ĵ���
3. ʹ��Server.Transfer�‫�������ض‬

��ʹ��Server.Transfer�����‫�����������ض‬Response.Redirect������ⲻ����Response.Redirect
����Broswer����һ����Ӧͷ������Ӧͷ����� ֮ Browerʹ���µ�URL���·������ⲻ �Server.T
ָ ‫����ض‬URL����
ransfer��������
ֱ �� ˵� ã��ȫ û����Щ����
һ�� ķ���

����Ҫ ‫��ע‬Server.Transfer�о����ԣ���һ��������ȫ�� 飻�‫�����������ڶ‬


ֻ ͬһWebӦ���
‫�ڵ‬ҳ�����‫��ת‬

3.2 ��������ͳ�ʱ�����ҵ
�������Ҫ���������ʱ�����еIJ�����Կ���ʹ���첽���õĻ��ƣ��Ա�Web�����������������������
ܹ

��1. ʹ���첽��ʽ����Web�����Զ�̶���

��ֻҪ�п���
ܾ Ҫ����������Ĵ������ж�Web�����Զ�̶ ͬ�
���������ã��Ϊ�� ռ�õ��ǵ�ASP.NET
�̳
߳��еĹ����̣߳��⽫��
ֱ Ӱ��Web��������Ӧ�����������f��

2. ���Ǹ���Ҫ������
ֵ Web������Զ�̶
���ķ������OneWay����

֮
������ģʽ����Web Server�������b�����‫��ء‬ɸ ��ʵ �������Ƿ �ʹ ����� �����
ַ

3. ʹ�ù������

������ҵ�ύ���������ϵĹ�������С��ͻ�����������
� 4� ѯ��ҵ���
ִн��

3.3 ʹ�û���
���������‫��ܴں‬
̶ �Ͼ�ASP.NETӦ�õ��������‫�ܡ‬Asp.net�� ֧ ҳ�������ҳ�沿���
ֻ 棬���ṩCache
API����Ӧ�ó�� ��
�����
Լ ����� ‫��ݡ‬Ƿ�ʹ�û���ɿ��������Ҫ�㣺

����1. ʶ�ⲻ �����ʴ�‫۽‬ϴ�����

����2. �9���Ҫ������‫���߼��ױ‬

����3. �9�����������
�ʹ��Ƶ��

����4. ��Ҫ����������߼���߼
‫ױױ‬ Ͳ�����߼��룬���
ֻ 治�����

����5. ѡ ����ʵĻ�����ƣ���Asp.net Cache� ⣬Application state��Session


stateҲ������Ϊ����ʹ� ã�

3.4 ����
߳
��1. �������������������
߳

����������
ִ Ĺ���д�������һ�
߳ ִ‫۽‬ϴ�IJ��������Ӱ��Web Server�����

‫�������ܡ‬IJ������������ɣ�������
߳ ͨ� thread pool4��� /�����̡
߳�
2. ��Ҫ��5����
߳ ‫̾߳��߼ۻ‬
�̬
��

�����������������
ִ ߳ ߳�ͬ�һ��
ASP.NET thread pool�еĹ����̣ Client� }������һ������ͬ����
߳�4�� �

3. �����������������
߳

���ο�"��������ͳ�ʱ�����ҵ"С�‫�ڡ‬

4. �����첽����

�����1��������ơ��첽���ûᵼ�
´����µ��̣
߳���ӷ�����ĸ��������ԣ����û�в�������ҵҪ� ִ 첽���á�
ִУ��Ͳ�Ҫ���

3.5 ϵͳ��Դ
����1. ����ʵ����Դ������������

����2. ��ȷ�‫���ص‬Dispose��Close�ͷ�ϵͳ��Դ

����3. ��Ҫ�����ʱ��ռ����Դ���е���Դ

����4. ������������룬����������ͷ�

3.6 ҳ�洦��
��1. �����С
� Pageij ߴ�

߼�����ơ�CSS��class����ơ�ȥ����ν���кͿ ոԪ ��ò���Ҫ��ViewState
����(��̿

��2. ����ҳ�����Ļ�����Buffer��

�����Buffer�Ļ��Ʊ��‫ر‬գ�����������ķ���� �

��ʹ�ó����ҳ�����棺

��Response.BufferOutput = true;

ʹ��@Page���‫�ش‬ҳ��������ƣ�

��<%@ Page Buffer = "true" %>

ʹ��Web.config��Machine.config�����ļ���<pages>�‫ڵ‬㣺

��<pages buffer="true" ��>

��3. ����Page.IsPostBack�Ż�ҳ�����
ͨ ͬ
��4. �����ҳ��IJ������ ߼��4�‫���ݣ‬Ч�ʺͼ��‫���ٳ‬
ֵʱ��

��5. �Ż����Ӻʹ�‫۽‬ϴ��ѭ��

��6. �������ÿͻ��˵Դ ���������� ‫�ת‬Ƶ��ͻ��˽���


������� ����һЩ����
ļ�����

3.7 ViewState
֮ ��Ϣ����Ƶ�һ���
��ViewState��Asp.netΪ����˿߼���ҳ��‫ش������̬״‬ ֻ ơ�

��1. �‫�ر‬ViewState

�������Ҫ����ҳ��‫������״‬ҳ�
̬ 治�� �‫���ش‬PostBack��������Ҫ������˿
߼��¼�����ÿ��ҳ��ˢ��ʱ�������¼���‫���߼����ݣ‬ô�Ͳ���Ҫ��ViewState4��¼ҳ��‫�״‬ˡ����
̬ Զ��‫���ض‬WebC
ontrol����EnableViewState���ԣ�Ҳ������ҳ��һ�����ã�

��<%@ Page EnableViewState="false" %>

2. ��ǡ����ʱ����ʼ���߼�����

ִй��캯���ʼ�����‫����ڼ‬õ����Բ�����
��ASP.NET�Ŀ ߼���� ֮
���‫ٱ‬仯�����‫�ڳ‬ʼ���߼������� Ե��
߼Ķ��ⲻ���٣������ռ�¼��IEҳ���__VIEWSTATE� ֮ С����ԣ�ѡ�����ij�ʼ���߼����Ե�� ִе
䣬���� Ч�ļ�Сҳ��ߴ硣

3. ���� ѡ��ŵ� ViewState�е�����

���ŵ�ViewState�е����߼����л�/�����л���Asp.netΪString��Integer��Boolean�Ȼ����͵����л��
����Ż������Array��ArrayList��HashTable�洢���ǻ�����Ч��Ҳ�ϸ ߣ���������������Ҫ�ṩ����
‫����ת‬Type Converter��������ʹ�ô�۰���Ķ��������л�����

4.JScript
4.1 JScript�����Ż��Ļ�ⲻ��
��1. �������߼‫ٵڸڸڸ‬ ִд���Ͼ��Խ�������4˵��ÿһ���
���� ִв��裬����Ҫ�ͽ���������һ�ν�����

��2. ������ʹ���������õĹ��‫����ܣ‬紮 t�ӡ�

��3. ������ʹ��ϵͳ�ṩ��API4�����Ż�����Ϊ��ЩAPI�DZ���õĶ����ƴ��룬��
ִ Ч�ʺܸߡ�

ܴ ۵ ġ�
��4. ��д����ȷ�Ĵ��롣�߼����Ҫ��������

4.2 JScript���Ա�����Ż�
��4.2.1 ��

��1. ��ʹ�þ���
ֲ ߼��

����Ϊȫ��
ֱ��ʵ��ȫ����
ֶ ij�Ա�������
ֲ ���ջ�϶��壬���Ȳ��ң����������ȫ��
ֱ߼Ҫ�ߡ�
2. ����
��һ�������������͸
���
� ��ֵ

3. ʡ�Բ���Ҫ�ı����
���塣

�������Ķ�����
�һ�� ����
����� ������
Ա ֱ ʹ�ó���

4. ʹ��Object�߼�Զ�����
ֵ

��Object�ĸ��߼�
ֵ ‫����ڲ‬Ӷ���ʱЧ�ʸ�ߡ�

�����磬���Խ�����Ĵ��룺

car = new Object();

car.make = "Honda";

car.model = "Civic";

car.transmission = "manual";

car.miles = 100000;

car.condition = "needs work";

�滻�ɣ�

car = {

make: "Honda",

model: "Civic",

transmission: "manual",

miles: 100000,

condition: "needs work"

4.2.2 ���ⲻ �

��1. ���������ҵ��м���

����ΪJavaScript�Ľ����ԣ�����a.b.c.d.e����Ҫ��������4�β�ѯ�����ȼ��a�‫��ټ‬a�е�b���‫��ټ‬b�е�
֣ ֻҪ���‫�ܣ‬Ӧ�þ��‫�������ٳ‬ı��ʽ���������þ���
c��������¡������������ı��ʽ�‫�����ظ‬ ֲ ߼���������
һ����ʱ�ĵ ‫����ط‬в�ⲻ��
2. ���洴��ʱ��ϳ��Ķ���

���Զ���߼������Date��RegExp�����‫���ڹ‬ʱ������Ĵ��ʱ�䣬�����Ը��ã�Ӧ���û���ķ�ʽ��

4.2.3 �����
ַ

��1. ʹ��"+=" 4"+"��ʹ��ַ��߼


l����
ַ

�������߼�������
ַ ʹ��s+=anotherStr�������Ҫʹ��s=s+anotherStr��

ַӦ��ʹ��"+"���磺
�����Ҫl�Ӷ����

����s+=a;

����s+=b;

����s+=c;

����Ӧ��д��

����s+=a + b + c��

ַӦʹ��Array��join������
2. l�Ӵ�����

��������ռ������
ַ ʹ��JavaScript���黺�棬���ʹ��join����l����4�����£�

var buf = new Array();

for (var i = 0; i < 100; i++)

buf.push(i.toString());

var all = buf.join("");

4.2.4 ����‫��ת‬

��1. ʹ��Math.floor()����Math.round()��������‫͡�������ת‬

ͣ
�������� ‫���������������׳‬‫����߼�ת‬
ܶ ϲ��ʹ��parseInt()����ʵparseInt()�����‫��ַ��ת‬ ֣
‫����������ڽ‬
Ǹ������������� ֮ ‫��������ת‬Ӧ��ʹ��Math.floor()����Math.round()��
����������е����ⲻһ��Math���‫���������ڲ‬Math.floor()��ʵ��û�ж��‫�ٲ‬ѯ�����͵��õ�ʱ�䣬�
‫������ٶ‬ġ�

2. �Զ���Ķ����Ƽ����ʹ��toString()����4�������� ‫����ת‬

�������Զ���Ķ����������toString()����4��������‫���ת‬Ļ����Ƽ���ʽ����toString()����Ϊ�‫��ڲ‬
IJ����‫������ڳ‬п������߼߼�
֮ Զ����toString()���������� ܷ ‫��ת‬ΪString�������
ֱӵ�������Ч
�ʻ��ߡ�

4.2.5 ѭ�����Ż�

��1. ��������ʹ��for(in)ѭ����

����JavaScript�У����ǿ���ʹ��for(;;),while(),for(in)����ѭ������ʵ�ϣ�������
���� ѭ����for(
in)��Ч�ʼ�� ɢ�м�
��Ϊ����Ҫ�� ѯ ���� Ҫ���
ֻ Ծ �Ӧ�þ�� ���
� á�

2. �ȼ���collection��length��

���磺��for (var i = 0; i < collection.length; i++)

���滻�ɣ�for (var i = 0, len = collection.length; i < len; i++)

��Ч����ã��������‫�ڴ‬ѭ���С�

3. ������
����ѭ���‫ڵ‬IJ���

��ѭ���‫�ڵ‬ÿ�������Ԫ�������
�Ŵ�Ϊѭ ı����� ��� ѭԪ�����
ԣ���� С�ĸĽ������ ����������϶ ��ǿɹ ۵ ġ�
���������� ߼

4. ʹ��ѭ������顣

�����ѭ�����߼��Ч�ʸ��һЩ���߼���ŵ�������ʽ�ϸ���ȻһЩ�����ԣ��‫�ڲ‬Ӱ������ά��� Ե�ǰ���£���ѭ ���


��߼顣

4.2.6 ������

��1. ��ʹ���������õ��߼��

��"var arr = [��];"��"var arr = new Array(��);"�ǵ�Ч�ģ�����ǰ�ߵ�Ч�����ߡ��‫��ں‬


ͬ �"var foo
= {};"�ķ�ʽҲ��"var foo = new Object();"�죻"var reg = /../;"Ҫ��"var reg=new
RegExp()"�졣

2. ����Ҫʹ��eval��

��ʹ��eval���൱��������ʱ�‫ٴ‬ε��ý������棬�Դ�������߼������У���Ҫ��Ĵ�ʱ�䣬
3. ʹ��prototype����closure��

��ʹ��closure�������
ܺ ‫ �� ϶�����ڴ‬Dz � � � ġ � � � � closureʹ �� � �
ͻ � � � � ��
� �����
�Ϊһ�� � �
�⡣���ԣ�������

��this.methodFoo = function()

���滻�ɣ�

��MyClass.protoype.methodFoo = function()

֮ в���
����closure�����‫���ڶ‬ʵ��� ͬ prototype���������У�����������еĶ���ʵ����

4. ����ʹ��with��䣬

ֵ¼��ʱ�䣬�������˸ ��� ��
��With�����ʱ) չ������ҵķ�Χ����ʡ������ ִ ʱ�䣬
��Ϊÿ�������ƶ�Ҫ��ȫ��ַΧ���ҡ����ԣ����Խ �����Ĵ �� 룺

with (document.formname)

field1.value = "one";

field2.value = "two";

�����

var form = document.formname;

form.field1.value = "one";

form.field2.value = "two";

4.3 DOM���
��4.3.1 ����DOM�‫�ڵ‬

����Ƚ���
� document.write4�ҳ�������� ‫���ݣ‬һ������ⲻ�‫�������أ‬
ָ һ��div����span�����������ǵ�
innerHTMLЧ�ʸ�ߡ�

��������innerHTML�ķ�ʽ����
� createElement�������� ‫��ڵ‬Ч�ʸ�ߡ���ʵ�ϣ������� ‫�ص‬innerHTML�Ǵ�
���‫�ڵ‬Ч����ߵ�һ��
ַʽ��

��������ʹ��createElement������������ĵ��д����ֳ
ɵ����‫ڵ‬䣬
֮
Ӧ������cloneNode()��������Ϊʹ��createElement()���������� Ҫ���ö��ⲻ�‫����ص‬ԣ
ͬ��������������߼�
�ʹ��cloneNode()����Լ������Ե����ô����������Ҫ����� ܶ ‫�أ‬Ӧ����߼��һ�����‫ڵ‬㡣

4.3.2 ��������͵�
߲ DOM��

�������һ���ӵ�DOM��ʱ�������ȹ��죬���������‫�����ٽ‬ӵ�DOM����ʵ��‫ڵ‬㡣������
ܹ ʡ����ˢ�µ�ʱ�䣬

� ߼���༭ һ���ӵ���ʱ�������Ƚ����DOM����ɾ��ȱ ༭���������ӻ�4��


ͬ ���

��4.3.3 �����ⲻ

��ʹ��[""]��ⲻҪ��.item()��졣����.item()�����һ�β�ѯ�ͺ���ĵ��á�

4.3.4 ��ʱ��

�������Ե��Dz������еĴ��룬
��Ӧ��ʹ��setTimeout����Ӧ����setInterval��setTimeoutÿ��Ҫ��������һ��ʱ�

4.4 ����
��1. �����������
��С�ļ��
ߴ 硣

����JScript�ļ����‫߼ص‬Ŀ��С��ո�‫��ע‬ȥ�������‫�ڼ‬СJS�ļ��ij ߴ磬������‫�ص‬ʱ�䣬��������� ֧ ִ 뷢����


� 4���

һ�� ͬ�
��2. �� � ��Ҫ�� Page� ͬʱ����JScript��VBScript����

��3. ��Page�‫�ڵ‬JScript���뵽���5�JS�ļ��С�

��4. ��Page�‫�ڵ‬JScript������Page�������棬���������ҳ�����Ӧ�‫ٶ‬ȡ�

��5. ����cache������JScript�ļ������‫���ش‬

��6. ��HTML����дJScript�ļ���URLʱ��
‫ͳ��ע‬һ��Сд�������������ǰ��URL������ļ���

Вам также может понравиться