Вы находитесь на странице: 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 ���ַ����... 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����ʹ���ַ���ӷ� ��+��. 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������������... 17

2. Ado.Net 17

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

2.2 Connection. 18

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

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

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

2.2.4 ��Ҫ�������... 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 ����ѭ���������� ��
������������
󲢲�ÿ ̬ ����ô��ѭ���з������������������
�ѭ ����ı�‫״‬ 󽫴�ġ �� Ч�����ǽ������ᵽѭ�����
洴����

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

��������ֻ��ijЩ�߼���֧�� вű��õ�����ôӦֻ�߼��‫ ��֧���ڸ‬д�������

��1.1.1.3 ʹ�ó�����ⴴ������

�������в�Ӧ������ new Decimal(0) ֮��Ĵ��룬�


�ᵼ��С����Ƶ�����������գ���ȷ������ʹ��Decimal.Zero���������������Լ
�����ʱ��Ҳ����ѧϰ�������ַ���Ӧ�õ����Ƶij����С�

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

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

��������������ɴ�������ʱ���� Finalize ��������Ӷ�������ã��Ա�֤��������


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

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

��1.1.3 ʵ�� IDisposable �ӿ�

����������ʵ��ֻ֧�ֻ��� й����‫ڵ‬Ļ��գ���������ķ��й���Դ������ Window GDI ������


ԭ� � � � � � � � � � � � � � � � � �‫�� ڽ‬ŵ
‫���ݿ‬ӣ�����������ͷ���Щ��Դ�кܴ����⡣������������������
������Ȼ��‫���ݿ‬ӿ����ѱ��‫ٺ‬ľ���������‫ڴ‬滹�ܳ���Ļ����������Dz������еġ�

��C#�� IDisposable �ӿ���һ����ʽ�ͷ���Դ�Ļ��ơ� ���ṩ


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

Ϊ��ֹ����� Dispose �����������õ������һ�㻹 Ҫ�ṩ�������


ߵ���ͬһ������Դ�ͷ�
ŵĹ��������� ʱ�� �ͬ
�Dispose ���Ӧ����
System.GC.SuppressFinalize(this)�������������������‫ ���ٴ‬Finalize �����ˡ�

1.2 String ����


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

��String �Dz����࣬ ʹ�� + ��������ַ��ᵼ�


´���һ���µ��ַ�����ַ���Ӵ � � � � ǹ ̶ � � ģ � � � � � � � һ � � ѭ � � � У � � � Ӧ � � ʹ � �
StringBuilder ������ַ���ӹ�����Ϊ StringBuilder �‫���ڲ‬һ�� StringBuffer
����Ӳ����ÿ�η����µ��ַ�ռ 䡣ֻ�е���Ӻ���ַ��� Buffer ��Сʱ���Ż������µ� Buffer �ռ 䡣��
�ʹ������£�

StringBuilder sb = new StringBuilder( 256 );

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


{

sb.Append (Results[i]);

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

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


ͨ���ȣͨ������һ�Σ�������������������������
ͨ Ρ���Ϊһ����ֵ�����ַ���Ӳ � � � 10 ‫ﵽ‬
������ʱ����Ӧ��ʹ�� StringBuilder��

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


StringBuilder ��ʹ�ó�����Buffer �϶������·��䡣����ֵһ���� 256 ��Ϊ Buffer
�ij�ֵ����Ȼ������ܼ������������ַ��ȵĻ�����Ӧ�ð����ֵ��趨 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 ������ֱ��‫ װ‬Win32 ���‫⼸������¼����������ٽ‬
�ֻ��ͬ�����ơ�C#���ṩ��һ��lock��䣬����ʹ�ã���������Զ�����ʵ��� Monitor.Enter ��
Monitor.Exit ���á�

��1.3.1.1 ͬ �����

�� ����ȿ�����������Ҳ����������
� � һ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
ͣ ��������� �ͣ
�ҲӦ�����һ��
⹹�static �ijԱ������ ô˳�Ա�����Ϊ�����

�������� this

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


ͬ�Է����е�ij�δ������������������
ͬ ‫���ڣ‬Ϊij����ԭ�B ���Ҳ��ʼʹ�� lock(this)
��
����� �
�������ˣ�������
�Ϊ ͬҿͬ ���ȫ�� �
��Ŀ�ġ�����A �����������
�ˣ ��ͱ
���� �����
޷�Ԥ֪�����ԣ���Ϊһ����õ�ϰ�ߣ��������ʹ�� lock(this) ���ַ�ʽ��

��ʹ��Ϊ��
�ĿΪͬ � ‫�ר‬Ź���ij�Ա���
�Ŀ�ͬ�ġ�
�������Ƽ�������ʽ���� new һ�� object ���� �ö��������� ��

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

ͬ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" ��һ��䣬���дһ��Ҫ�õ������һ�㽲��Ч�ʲ��ߡ��Ƽ�ʹ��
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 ��䣬�������ᱻ�
�����
‫��������ظ‬µ�ʵ������ɵ�ʵ������������������‫������ݲ‬ƻ����߱� ��ʲôԭ����Ӧ����ʹ��

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 ����

��.net Ĭ��ʵ�ֵ� ValueType.Equals ����ʹ���˷��似���������������


�г�Ա���ֵ��Ƚϣ � � � � Ч � ʼ � � ͡� � � � � � � 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

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

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

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

? ʹ�÷��������Ⱥ�����������‫ݽ‬ṹ������������ʱ�����ǾͿ��Ա�ʵ����洢�պú��ʵ����͡
����ʡ��
‫ � � � � � � � � � ת‬/ � �‫����װ‬ʱ�䡣

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

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

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

ԭ����ǣ���Ҫ�Ե��쳣����������������
�������쳣���������Ҫ����ǣ���Ҫ�Ե�� ‫�޹أ������ڱ‬д��
‫�������׳‬Ŵ�ij���dz���Ҫ�������һ��
ԭ�������
�Dz ˵ Ҫ������ Щ�㲻�ܴ�����쳣��

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

��1.5.2 ��Ҫ�Ե��쳣��Ϣ��

����Щ������Ȼ�‫����׳‬쳣����ȴ���쳣��Ϣ�Ե��ˡ�
��Ϊ�쳣��¶�꾡����Ϣ�dz���Ա��ְ�����‫���ڡ�������ڱ‬ԭʼ�쳣�
�Ϣ�����ǰ���¸��Ӹ�ḻ�����Ի������‫���ݣ‬ô
͸� � � � Ի� � � � � � ԭʼ���쳣��Ϣֱ��չʾҲҪǿ�öࡣǧ��Ҫ�Ե��
��ʼ���
쳣��

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

���‫��׳‬쳣�Ͳ����쳣������ıȽϴ � IJ � � � � ‫�����ܵ��ڿ‬£�Ӧ �����Ƴ����Ӧͨ


�����Ƴ����
‫��߼ ������׳‬Ҫ����Ҫ���쳣�������‫�ص‬һ�������������쳣����ƴ����
‫�������ܶ��ڼ‬ �ͨ
߼�������������ܻ�ͨø�Ϊ���ŵĽ������� ������Ӧ� ñ��⡣

��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���ͷ�ռ�õ���Դ����ӣ��ļ���ȣ���Ȼ��Catch�������ռ�õ���Դ�����ͷš�

����try

����{

����...

����}

����catch

����{...}

����finally

����{

����conntion.close()

����}

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

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


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

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


‫�ص‬Ԫ�����Ϣ������Assembly.GetModule��Module.GetType��Type�����ϵ�IsInt
erface��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�����ʵ��ֶ̬�̬���á�

���Ӳ��Խ�����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 ѭ��д��

�����������
԰ �ж ѭ��� þֲ������¼������ֲ��������������Ż�Ϊֱ���
ʹ�üĴ���������� ��
ͨӶѻջ� з���
ı���‫ٶ‬ȿ 졣����� ʵ��Ǹ��Ӽ������ԵĻ�������Ч������ԡ�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���������ȥ��

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

���������Ч�ʣ�������ֱ�ӻ�ȡ����Ȼ���ж϶����Ƿ�Ϊnull�ȷ��Ԫ���Ƿ���‫�����ڡ‬Hash
table������Խ�ʡһ��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����ʹ���ַ���ӷ� ��+��

����//����

����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 � � � � � � � � H a s htable � � � � ʹ � ü � � ɢ � � � 뽫���
�ֲ�����ͬ�Ĵ 洢 Ͱ�У�����‫��ڸ��ض‬Ĵ 洢 Ͱ��ʹ�ü��Equals�������в��ҡ�

����õ�ɢ�����ǵ�һλ�����‫�������������أ‬ÿ ͬ ��� 롣
ͬ ļ��вͬ ���ɢ���
Equals����Ҳ����Ҫ����Ϊɢ��ֻ��Ҫ��һ�Σ���洢 Ͱ�в��Ҽ������Ҫ���Ρ���ʵ�ʾ��鿴
��ʹ��Hashtableʱ��Equals���������һ���ռ��һ�����ϡ�

System.Object���ṩ��Ĭ�ϵ�GetHashCodeʵ�֣�� ʹ�ö������‫��ڴ‬еĵ�ַ��Ϊɢ���롣������
�һ����Hashtable������������ӣ�ÿ�θ�‫�ݴ��ݵ‬OQL���ʽ�����һ��ExpressionList�����‫���ٵ‬Quer
yCompiler�ķ�������õ�CompiledQuery������ExpressionList�����CompiledQuery������Ϊ��ֵ�
Դ 洢��Hashtable�С�ExpressionList����û������GetHashCodeʵ�֣��� 䳬�
�ArrayListҲû�У���������õľ���System.Object���GetHashCode ʵ �֡������ ExpressionList���
��ÿ�ι��죬�����

ͬ
�HashCodeÿ �ζ��� ���������
� CompiledQueryCache���û����������
�á �Ԥ
��� СС����©������ ‫�ش‬
��������⣬���‫��� ڽ‬OQL���ʽƵ��������CompiledQueryCache���������ɷ������‫�ڴ‬й©����
�������������������ṩһ���ʵ
򵥷��������ṩһ���ʵ�֣�������� ɢ����Ϊ���0����Ȼ��ᵼ�����ж����۵�ͬһ��洢
Ͱ�У�Ч�ʲ��‫��ߣ������ٿ‬Խ����‫�ڴ‬й©���⡣��Ȼ�����ջ��ǻ�ʵ��һ���Ч��GetHashCode�����ġ

�����Ͻ�����ЩHashtable������Ҫ��ϣ������⣺���ʹ��Hashtable����Ӧ�ü��һ�¶����Ƿ��ṩ���ʵ���Ge
tHashCode��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 ��洢�


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

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

����

1.10��XML�����ȡ���
�������ֻ�Ǵ�XML�����ȡ��‫���ֻ���ݣ‬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������������
��2. Ado.Net

2.1 Ӧ��Ado.net��һЩ˼��ԭ��
����1. ������ʹ�õķ�ʽ������‫��ݷ‬ʲ�

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

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

����4. ��Ҫʱ���룬�����ͷ�

����5. �‫ر‬տɹ‫ر‬յ���Դ

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

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

����8. ѡ���ʵ�����������
����9. ʹ�ô 洢���

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

��2.2.1 �‫����ڷ‬д򿪺͹‫����ر‬

��������
ԭ�м � 㺬�壺

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

����2. ��Ҫ����Ĺ��캯���д���ӡ�����������ͷ���ӡ���Ϊ�⽫����������գ���������ֻ���‫�ڴ‬Ӱ�죬�
���ʱ��

����3. ��Ҫ�‫ �� ֮���ڷ‬䴫����ӣ�����������ӱ��ִ�


򿪵� ʱ���

����ǿ��һ���‫ �� ֮���ڷ‬䴫���
�ӵ�Σ��������ѹ����������һ�����������
԰ �û ���ʱ�������Ҫ�ȱ� İ�����ܾþ��õ���ӳ��е�������ӡ���
���������ΪA������һ�����Ӵ��
򿪵���Ӵ��‫���ݵ‬B��������B�����ֵ�����һ�����д򿪺͹‫���ر‬ӵ�C��������A�
�������������‫ڼ‬䣬��������Ҫռ�������Ӳ��ܹ��ɹ�����������е�һ�����ռ��ʱ�仹�‫𳤣ر‬
����������ӳ���Դ���ţ�Ӱ�������ϵͳ�Ŀ������ԣ�

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

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

using (SqlConnection conn = new SqlConnection(connString))

conn.Open();

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

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

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

��2.2.4 ��Ҫ�������

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

��2.3 Command
��2.3.1 ʹ��ExecuteScalar��ExecuteNonQuery
������뷵���
�Count(*)��Sum(Price)��Avg(Quantity)����ĵ�ֵ������ʹ��ExecuteScalar������ExecuteSca
lar���‫�ص‬һ�е�һ�е�ֵ���������Ϊ���ֵ���‫���ء‬Ϊ����һ��������ɣ�����ExecuteScalar����
��˴��룬����������‫�ܡ‬

��ʹ�ò������е�SQL���ʱ�������
‫�޸���ݣ‬INSERT��UPDATE��DELETE������������򷵻�ֵ����ʹ��Exe
cuteNonQuery������������‫�����ڴ‬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�����Ҫ�ȱ������ִ�мƻ���Ȼ����ִ�С����ʹ�ð󶨱���ķ�ʽ����ô���ִ�мƻ��Ϳ��Ա�����ִ�е�SQL�����
�á������ֱ�ӰѲ���ϲ�����SQL����У����‫ֵ���ڲ‬ǧ���򻯣�ִ�мƻ������Ա������ˡ���������Prepareһ�‫ڸ‬
���ʾ�����Ѳ���ֱֵ��д��insert����У���ô������Ĵε��ý���Ҫ�����Ĵ�ִ�мƻ���

��Ϊ��������������������ʧ��Ҫ��һ��ʹ�ð󶨱����ʽ��
��2.4 DataReader
��DataReader���ʺ��‫��ֻ���ڷ‬ĵ�����‫�����ݼ‬DataSet������
ͬ ͬ ‫�����ݼ‬ȫ�����‫��ڴ‬У�����
�治�Ϸ����read����һ��������‫������ݻ‬е���‫��ݾ‬ȡ��������Դ����һ����
‫������ݻ‬С����‫��������ݿ‬⣬DataReader������ӣ�DataSet������ӶϿ���

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

����������ƣ�Ҳ��Ҫ��ʽ�‫�ر‬DataReader�����⣬�����DataReader�����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 ʹ�ö���‫�ݼ‬

�����ֳ������Կ���һ�η��‫���������ض���ݼ‬罻����������Ч�ʡ�ʾ�����£�

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-
ͨPrimaryKey�����е�����ΪDataTable����һ��DataView������
ͨ SortOrder����ָʾ�������˺�ʹ��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.Red
irect����Broswer����һ����Ӧͷ������Ӧͷ��ָ���‫����ض‬URL��֮ ��� Browerʹ���µ�URL���·����
����
󡣶 Server.Transfer�� �ֱ����һ��򵥵ķ���˵��ã���ȫû����Щ����

����Ҫ‫��ע‬Server.Transfer�о����ԣ���һ��������ȫ��飻�‫ͬ��������ֻ���ڶ‬һWebӦ���
‫�ڵ‬ҳ�����‫��ת‬
3.2 ��������ͳ�ʱ�����ҵ
�������Ҫ���������ʱ�����еIJ�����Կ���ʹ���첽��
�õĻ��ƣ��Ա�Web�������ܹ����������������

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

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

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

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

3. ʹ�ù������

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

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

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

����2. �����Ҫ������‫���ݵ��ױ‬

����3. �����‫��ʹ�ݵ‬Ƶ��

����4. ��Ҫ����������‫��ݷ�����Ͳױ���ݺ‬룬ֻ���治�����

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


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

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

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


‫�������ܡ‬IJ���������߳� ���ɣ�����ͨ�� / �����̡߳�/ �
thread pool �����

2. ��Ҫ����߳� ���‫̬�̾߳ ��ݲۻ‬


�̬����߳̾
���

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

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

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

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

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

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

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

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

3.6 ҳ�洦��
��1. �����СPage�ijߴ�

�������̿
‫�����ؼ‬ơ�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�� ����� ߻����‫���ݣ‬Ч�ʺͼ��‫�ֵ��ٳ‬ʱ��


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

��6. �������ÿͻ��˵ļ�����Դ����һЩ����‫�ת‬Ƶ��ͻ��˽���
3.7 ViewState
��ViewState��Asp.netΪ����˿‫���ؼ‬ҳ��̬‫��ش�֮�����״‬Ϣ����Ƶ�һ�ֻ��ơ�

��1. �‫�ر‬ViewState

�������Ҫ����ҳ��̬‫������״‬ҳ�治�� �‫���ش‬PostBack��������Ҫ������˿
‫�����¼��ؼ‬ÿ��ҳ��ˢ��ʱ�������¼���‫���ؼ����ݣ‬ô�Ͳ���Ҫ��ViewState���¼ҳ��‫� ̬״‬ˡ����Զ��‫ض‬
���WebControl����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. �������‫�ִ���ٵؼ‬д���Ͼ��Խ��������˵��ÿһ��ִ�в��裬����Ҫ�ͽ���������һ�ν�����

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

��3. ������ʹ��ϵͳ�ṩ��API������Ż�����Ϊ��Щ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. ʹ��"+=" ‫"��ʹ�ַ���׷‬+"�����ַ�

�������‫��ʹ����ַ���׷‬s+=anotherStr�������Ҫʹ��s=s+anotherStr��

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

����s+=a;

����s+=b;

����s+=c;

����Ӧ��д��

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

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

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

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()����Ma
‫�����������ڽ ��ַ�ת‬
th.round()��

����������е����һ��
ⲻ�Math �� ‫���������ڲ‬Math.floor()��ʵ��û�ж��‫�ٲ‬ѯ�����͵��õ�ʱ�䣬�
‫������ٶ‬ġ�

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

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

4.2.5 ѭ�����Ż�

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

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

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.write���ҳ��������‫���ݣ‬һ������Ԫ�‫��ָ�����أ‬һ��div����span�������
����Ƚ� ��
ͨ�
����ǵ�innerHTMLЧ�ʸ�ߡ�

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

��������ʹ��createElement������������ĵ��д����ֳɵ����‫ڵ‬㣬
Ӧ������cloneNode()��������Ϊʹ��createElement()�����������Ҫ���ö��Ԫ�‫ص‬
����ԣ�ʹ��cloneNode()����Լ������Ե����ô����������Ҫ���� � ͬ� � � � � � Ҫ� � � � ͬ �ܶ�Ԫ
�‫�أ‬Ӧ����‫��׼‬һ�����‫ڵ‬㡣

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

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

ͬ ����‫���׼‬༭ һ���ӵ���ʱ�������Ƚ����DOM����ɾ��ȱ ༭���������ӻ����

��4.3.3 �����ѯ

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

4.3.4 ��ʱ��

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

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

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

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

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

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

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

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

ͣ�������CSDN����
ͣ ‫���������ת‬http://blog.csdn.net/bluedoctor/archive/2009/02/03/38
59847.aspx

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