Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

.NET 2.

0 Features

Venkat Subramaniam
venkats@agiledeveloper.com

h ttp:
/ / w
w w .agiledeveloper.com/

    
! "#$  dow nload.aspx
 
 % "&$')(+*

.NET 2.0-1

A b strac t
,.-/1023410 57698;:+8+<>=@?A8.BDCFE GH:IG>JLKMN5PODQR6SE TVU989W)XY6+ZAC[CG]\^8_8+<A`9E =E :+acb Z.:+aHd9Z>a)8_J8>Z+=ed)B8AC+K
QR6+Z+= Z.B8f=698AC8fJ8>Z+=d)B8ACgZ.:+TR69GAhiZ)B8f=6+89WRd+C89J1d)b jlkVGAhI`Z.:fW+GHd@m)d9= =6+8.\n=DGRd+C8oGH:
WAG]dSBm)B%GqpD8>`=rCqjtsB%8f=e698SB8f=6)E :9a.Cg=DG@Z9?AG]E T.jt5u6)E C^C8ACCFE G]:lhtE b b]mAB8AC8.:9= =698v:98+hIJ%8>Z+=d)B%8AC
E :_KMN5xwVKzy{htE =6[89<AZ.\om)b 8AC+K|Q}8~htE b b =DZ.8~Z[`9b G)C8SB}b G>G]€Z+=J8>Z+=dSB%8ACYb E q8~‚8.:+8.B1E `Cqƒ
m9Z.B%=E Z.b}`9b ZACC8ACqƒ„Z.:+G]:FW]\^G]d>Cc\8+=69GAT.Cqƒ[:)dSb b Z.U)b 8…`9b ZACC8ACqƒ€C=DZ+=E `n`9b ZACC8ACqƒ†m)B%G]mF8.B%=W
8.:)6+Z.:9`8.\8.:9=rCqƒ7E =D8.BZ+=DG.BDCqƒVZACC8)\oUSb WoZ.b E ZACFE :9a@Z.:9T‡BZ+J%Z>`=G]BˆE :+auK

,.-‰qŠ0g0‹Œ„AŽŒ3qŒq2 ]‘’”“q•–F—˜F™›š.œ‘˜ž|˜–FŸ ˜qž¡ |¢£‰qŠq¤q¥Œq2t‰¢


,)¦9§ ¨ Œª©)Œ«ŒF¨ ‰qŽŒq2 _¬¤4­  ®‹3/c0239§ ¤Œ¥¯3q¤¥±° Œq¤0%‰q2Œ¥
0‹‰qŠ/3q¤¥/@‰¢g/‰¢z0²73q2Œ„¥Œ«ŒF¨ ‰qŽŒq2/‡§ ¤v0D‹Œ´³)A ›µ)3q¤3¥3
3q¤¥·¶ŠF2‰qŽŒ>­¹¸AŒº‹3/»/§ ¦F¤F§ ¢§ 43q¤0¼Œ½qŽŒq2D§ Œq¤4Œ¾§ ¤
3q24‹q§ 0%Œ410ŠF2Œ [¥Œ/§ ¦F¤q Y3q¤q¥¿¥Œ«ŒF¨ ‰qŽ9° Œq¤0À‰¢~/‰¢z0%²3q2Œ
3qŽŽq¨ § 430D§ ‰q¤/­Á)Œq¤q30g‹ŒF¨ Ž/o‹F§ /l4¨ § Œq¤0%/Œ¢z¢£Œ410r§ «ŒF¨ Ç3qŽqŽq¨ Ã
3q¤¥Ä/Š44ŒŒ¥Ä² § 0‹x3¦9§ ¨ ŒÅŽ23410r§ 4Œ/{‰q¤®0‹Œq§ 2v/‰¢z0²3q2Œ
Ž2‰Æ%Œ410%/ >3q¤¥¡/ŽŒ3F/7¢2ŒÇFŠŒq¤0r¨ Ã|30V4‰q¤¢£Œq2Œq¤4Œ/­
¸AŒÄ§ /À3F¨ /‰i3q¤x3¥ÆDŠF¤410v¢£34Š9¨ 0%Ãi30v0‹ŒÄ³S¤q§ «Œq2/§ 0Ãi‰¢
¸A‰qŠ/10%‰q¤‡È%²‹Œq2Œ‹ŒR2Œ4ŒF§ «Œ¥}0D‹ŒRÉÊFÊËRµ)v¥ŒqŽ3q2£0ˆ° Œq¤0
0Œ34‹F§ ¤¦ Œ½4ŒF¨ ¨ Œq¤4Œ 3²3q2¥qÌÍ3q¤¥ 0Œ34‹Œ/Î0D‹Œ
Ž2‰¢£Œ/e/§ ‰q¤3F¨Ï/‰¢z0²73q2Œ·¥qŒ«Œ9¨ ‰FŽŒq2Ð/Œq2D§ Œ/Ñ30ÓÒ+§ 4Œ
³)¤9§ «Œq2/§ 0%Ã|+4‹q‰‰F¨‰¢.4‰q¤0r§ ¤qŠ9§ ¤¦Ô/10Šq¥9§ Œ/­
Á)Œq¤q30”‹3/}-ŒŒq¤v3¢2ŒÇFŠŒq¤0g/ŽŒ3qŒq2¡30ÕA‰´Ö¨ Š¢z¢|׈Š/10
F0Š¢z¢S+‰¢z0%²3q2Œ›9Ã+°ØŽ‰/§ Š>°€/§ ¤4Œ›)Š9°¡° Œq2HÉÊFÊFÉ+­

.NET 2.0-2
.NET 2.0 Features
• Whidbey
• G e n e r ic s
• P a r t ia l c la s s e s
• A n o n y m o u s m e th o d s
• N u lla b le c la s s e s
• S t a t ic c la s s e s
• P r o p e r ty e n h a n c e m e n ts
• I te r a to r s
• A s s e m b ly a lia s in g
• R e fa c t o r in g
• C o n c lu s io n
.NET 2.0-3

Whidbey
•A s o f t h is w r it in g w e a r e w o r k in g w it h a
p r o d u c t in B e t a

•F ir s t s ig n if ic a n t u p g r a d e t o . N E T

•W h a t e v e r p r e s e n t e d h e r e is s u b j e c t t o
c h a n g e

•I t w ill c h a n g e

.NET 2.0-4
. N E T 2 . 0 F ea t u r es
• . N E T 2 . 0 W h id b e y
• G en er ic s
• P a r t ia l c la s s e s
• A n o n y m o u s m e t h o d s
• N u lla b le c la s s e s
• S t a t ic c la s s e s
• P r o p e r ty e n h a n c e m e n ts
• I te r a to r s
• A s s e m b ly a lia s in g
• R e fa c t o r in g
• C o n c lu s io n
.NET 2.0-5

G en er ic s
•R e m e m b e r t h e g o o d o ld T e m p la t e s in
C + + ?
•J a v a w e n t t h e r o u t e o f u s in g O b je c t a s
g e n e r ic t y p e
–P r o b le m is w h e n y o u p u ll s o m e t h in g o u t o f a
c o lle c t io n , h o w d o y o u c a ll m e t h o d s o n it ?
–O n l y a fte r c a s t in g it to th e c o r r e c t ty p e r ig h t
–M u c h w o r s t if y o u a r e d e a lin g w it h v a lu e
ty p e s
•T h e s e h a v e t o b e b o x e d a n d u n b o x e d
•H a v in g c o lle c t io n s t h a t a r e t y p e s a f e w ill
e lim in a t e t h is is s u e
–B a c k t o w h a t C + + o r ig in a lly p r o v id e d ☺
.NET 2.0-6
N eed f o r G en er ic s
•T h is is h ig h ly d e b a t a b le
•F ir s t q u e s t io n is d o w e r e a lly n e e d a t y p e
s a fe la n g u a g e
–W h a t a b o u t d y n a m i c a l l y t y p e d l a n g u a g e s
•I f w e u s e d d y n a m ic a lly t y p e d la n g u a g e s ,
t h e n w e d o n o t r e a lly c a r e a b o u t
g e n e r ic s !
•B u t th e n , w e a r e t a lk in g a b o u t C # h e r e
•S o , h o w d o w e s o lv e t h e is s u e s w it h s u c h
a s tr o n g ly t y p e d la n g u a g e
.NET 2.0-7

U s a g e
•. N E T 2 .0 p r o v id e s
S y s te m .C o lle c t io n s . G e n e r ic s n a m e s p a c e
•V a r io u s c o n t a in e r c la s s e s h a v e b e e n
p a r a m e t r iz e d

•S im p ly c r e a t e a n in s t a n c e o f a G e n e r ic
C o lle c t io n c la s s a n d u s e it lik e y o u w o u ld
a n y o t h e r c la s s
–L i s t < i n t > lis t O fI n t = n e w L is t < in t > ( ) ; …

.NET 2.0-8
C L R S u p p o r t f o r G en er ic s
• T h e G e n e r ic s “m a p ” t o M S I L d iffe r e n t ly b a s e d
o n v a lu e ty p e s o r r e fe r e n c e ty p e s
• F o r e a c h v a lu e t y p e usage, o n e c la s s is r o lle d
o u t a t th e M S I L le v e l ( a t r u n t im e )
–F o r t h e fo llo w in g t w o L is t c la s s e s a r e c r e a t e d , o n e o f
t y p e in t , t h e o t h e r o f t y p e d o u b le

   
 !"
# $% &' 
( !"
# $*),+.-0/, 12
• F o r a ll r e fe r e n c e t y p e u s a g e , o n ly o n e c la s s is
r o lle d o u t a t t h e M S I L le v e l
–F o r t h e fo llo w in g o n ly o n e L is t c la s s t h a t t a k e s a n
O b j e c t t y p e i s c r e a t e d This is what the documentation says!
 !"
# $43150678# But that does not appear true
 !"
# $%9:+<;=2# The behavior for reference type
appears same as value type .NET 2.0-9

Unbounded Type Parameters


•I f y o u w r it e a G e n e r ic lik e M y C la s s < T > ,
t h e r e is n o r e s t r ic t io n o n w h a t ty p e
a r g u m e n t m a y b e u s e d to in s t a n t ia t e
•S o m e r e s t r ic t io n s a p p ly in t h is c a s e
–C a n ’t u s e = = a n d != o p e r a to r s
–C a n ’t c o
n v e r t to a n d fr o m S y s te m .O b je c t o r
a n y in ter fa c e
–C o m p a re w it h n u ll, b u t a lw a y s r e t u r n s fa ls e if
ty p e is v a lu e t y p e
•O n e o p t io n is f o r y o u t o c o n s t r a in t h e
t y p e y o u r g e n e r ic w ill a c c e p t

.NET 2.0-10
C onstrai nts on G eneri c s
•W h a t if t h e a u t h o r o f a G e n e r ic w a n t s t o
p u t s o m e r e s t r ic t io n s o n it s u s a g e
•T h is is d o n e u s in g t h e w h e r e c la u s e

•F o r in s t a n c e , y o u m a y r e s t r ic t t h a t a
c o lle c t io n y o u w r it e m a y a c c e p t o n ly
o b je c t s o f c la s s e s d e r iv e d f r o m a B a s e
c la s s

.NET 2.0-11

Types of C onstrai nts


• w h e r e T : s tr u c t
–t y p e m u s t b e a v a lu e t y p e
• w h e r e T : c la s s
–t y p e m u s t b e a r e fe r e n c e t y p e
• w h e r e T : n e w ( )
–t y p e m u s t h a v e p u b lic p a r a m e t e r le s s c o n s t r u c t o r
( s p e c if ie d a s la s t c o n s t r a in t )
• w h e r e T : base_class_name
–t y p e m u s t b e o f o r d e r iv e s fr o m b a s e _ c la s s _ n a m e
• w h e r e T : in t e r fa c e _ n a m e
–t y p e m u s t b e o r m u s t im p le m e n t t h e s a id in t e r fa c e

T h e c o n s t r a in t s t h e m s e lv e s m a y b e g e n e r ic a s w e ll
.NET 2.0-12
A dv antag e of C onstrai nts
•C o n s t r a in s a llo w y o u t o in v o k e m e t h o d s
o r a c c e s s p r o p e r t ie s o f a c la s s m o r e
fr e e ly

•W it h o u t c o n s t r a in t s , y o u c a n o n ly w r it e
c o d e f o r t h e le a s t c o m m o n d e n o m in a t o r

.NET 2.0-13

G eneri c C l asses I nh eri tanc e


•A G e n e r ic c la s s m a y d e r iv e d f r o m a
c l o s e d -c o n s t r u c t e d G e n e r i c
–c l a s s M y G 2 < T > : M y G 0 < in t > …
• I t m a y d e r i v e f r o m a n o p e n -c o n s t r u c t e d
G e n e r ic , p r o v id e d t h e t y p e is
p a r a m e t r iz e d
–c l a s s M y G 2 < T > : M y G 1 < T , in t > …
–c l a s s M y G 2 < T > : M y G 1 < T , X > …/ / E R R O R
• A n o n -g e n e r i c c l a s s m a y d e r i v e f r o m a
c l o s e d -c o n s t r u c t e d G e n e r i c b u t n o t o p e n -
c o n s t r u c t e d G e n e r ic
.NET 2.0-14
G eneri c M eth ods
•N o n e e d t o s p e c if y t y p e o n a m e t h o d o f a
G e n e r ic c la s s
–R e s u l t s i n w a r n i n g i f y o u d o r e d u n d a n t l y
–l i k e c l a s s A < T > { p u b l i c v o i d f o o < T > ( ) …
•H o w e v e r , w h a t if y o u w a n t t o r e f e r t o
m a k e t h e p a r a m e t e r s G e n e r ic ? S im p ly
d e c la r e t h e a r g u m e n t s o f t h a t t y p e
–c l a s s A < T > { p u b lic v o id fo o ( T o b j) …
•W h a t a b o u t p a r a m e t r iz e d m e t h o d s ? S u r e
–c l a s s A < T > { p u b lic v o id fo o < X > ( T o 1 , X o 2 )

.NET 2.0-15

G eneri c M eth ods…


•F o r m o s t p a r t c o m p ile r f ig u r e s o u t t h e
ty p e fo r m e th o d s fr o m th e a r g u m e n ts

• I f i t c a n ’t y o u h a v e t o h e l p i t w h e n c a l l i n g

•c la s s A < T >
{ p u b lic b o o l c h e c k < X > ( in t id ) …
•W h e n c a llin g y o u s a y
–A < O r d e r > o b j = n e w A < C a r > ( ) ;
–o b j . c h e c k < B o o k > ( 2 2 ) ;

.NET 2.0-16
G eneri c D el eg ates
•D e le g a t e s u s e g e n e r ic in t h e s a m e w a y
c la s s e s d o
–A f t e r a l l u n d e r t h e h o o d , g e n e r i c s a r e
c l a s s e s , i s n ’t i t ?

•W h e r e t h is is u s e f u l?
–C a n p a s s a r g u m e n t s t h a t a r e s t r o n g l y t y p e d
a n d d o n o t h a v e to c a s t d o w n

.NET 2.0-17

R ef l ec ti on and G eneri c s
•T y p e o b j e c t p r o v id e in f o r m a t io n a b o u t
G e n e r ic s
–I s G e n e r i c P a r a m e t e r t e l l s i f T y p e i s a
p a r a m e t e r o f a G e n e r ic T y p e
–I s G e n e r i c T y p e D e f i n i t i o n t e l l s i f T y p e i s a
d e fin it io n o f a g e n e r ic T y p e ( t y p e fr o m w h ic h
o t h e r g e n e r ic t y p e s a r e c r e a t e d –lik e A < in t >
is c r e a t e d fr o m A < T > )
–G e t G e n e r i c A r g u m e n t s r e t u r n s t h e
p a r a m e t r iz e d t y p e s
–H a s G e n e r i c A r g u m e n t s t e l l s i f t h e t y p e h a s
g e n e r ic t y p e a r g u m e n t s ( a n d t h e r e is a
g e n e r ic t y p e )
.NET 2.0-18
. N E T 2 . 0 F eatures
• . N E T 2 . 0 W h id b e y
• G e n e r ic s
• Partial classes
• A n o n y m o u s m e th o d s
• N u lla b le c la s s e s
• S t a t ic c la s s e s
• P r o p e r ty e n h a n c e m e n ts
• I te r a to r s
• A s s e m b ly a lia s in g
• R e fa c t o r in g
• C o n c lu s io n
.NET 2.0-19

Parti al C l asses
• . N E T 1 . 0 / 1 . 1 r e q u ir e s t h a t c la s s b e in o n e file
• Y o u h a v e t o s e e e v e r y t h in g , lik e it o r n o t
• H o w a b o u t s e p a r a t in g c o d e in t o m u lt ip le file s ?
–Y o u c a n b r e a k t h e c la s s in t o p a r t ia l c la s s e s
–G e n e r a te d c o d e c a n b e s e p a r a te
• R e s t r ic t io n s :
–A ll c o d e r e la t e d c la s s m u s t b e m a r k e d p a r t ia l
–p a r t ia l c a n a p p e a r o n ly b e fo r e c la s s , s t r u c t , in t e r fa c e
–A ll p a r t ia l c o d e m u s t b e in t h e s a m e
a s s e m b ly / m o d u le
–G e n e r ic s c a n b e p a r t i a l –a l l p a r a m e t e r s m u s t b e s a m e
a n d in s a m e o r d e r
• A t t r ib u t e s o n p a r t ia l t y p e s a r e m e r g e d
.NET 2.0-20
W h y Parti al C l asses?
•M u lt ip le p r o g r a m m e r s c a n e d it t h e c la s s
s im u lt a n e o u s ly

•C o d e g e n e r a t o r s c a n a d d c o d e t o a c la s s
w it h o u t r e c r e a t in g a f ile
–Y o u c a n k e e p y o u r c o d e s e p a r a t e f r o m th e
V is u a l S t u d io v o m it ☺

•Y o u m a y k e e p y o u r n e s t e d t e s t c a s e s
s e p a r a t e f r o m c o d e y o u a r e t e s t in g !
–O c c a s i o n a l l y u s e f u l t o t e s t p r i v a t e m e m b e r s
.NET 2.0-21

. N E T 2 . 0 F eatures
• . N E T 2 . 0 W h id b e y
• G e n e r ic s
• P a r t ia l c la s s e s
• A n o n y m o u s m eth o d s
• N u lla b le c la s s e s
• S t a t ic c la s s e s
• P r o p e r ty e n h a n c e m e n ts
• I te r a to r s
• A s s e m b ly a lia s in g
• R e fa c t o r in g
• C o n c lu s io n
.NET 2.0-22
A nonymous M eth ods

.NET 2.0-23

A nonymous M eth ods…


• C a n b e p la c e d a n y w h e r e a d e le g a t e is e x p e c t e d
• R e d u c e s c o d e s iz e
• T h o u g h m a y a ffe c t r e a d a b ilit y u n t il y o u g e t
r e a lly u s e d t o it
• S c o p e o f v a r ia b le s d e c la r e d w it h in is w it h in
a n o n y m o u s m e t h o d b lo c k
• Y o u c a n ’t j u m p o r g o t o o u t o f i t
• C a p t u r e d v a r ia b le s a r e in t h e s c o p e o f
a n o n y m o u s m e t h o d s –v a l u e c a p t u r e d a t t h e
in v o c a t io n o f t h e m e t h o d
• C a n ’t a c c e s s r e f o r o u t p a r a m e t e r s o f o u t e r
s c o p e
• N o u n s a fe c o d e a llo w e d w it h in

.NET 2.0-24
Quiz Time

.NET 2.0-25

. N E T 2 . 0 F ea t ur es
• . N E T 2 . 0 W h id b e y
• G e n e r ic s
• P a r t ia l c la s s e s
• A n o n y m o u s m e th o d s
• Nullable c las s es
• S t a t ic c la s s e s
• P r o p e r ty e n h a n c e m e n ts
• I te r a to r s
• A s s e m b ly a lia s in g
• R e fa c t o r in g
• C o n c lu s io n
.NET 2.0-26
N ul l a b l e C l a s s
•T h e r e is a d if f e r e n c e b e t w e e n 0 a n d d o e s
n o t e x is t
•F o r e x a m p le ,
–S t r i n g s = " " ; d e n o t e s e m p t y s t r in g
–S t r i n g s = n u ll; d e n o t e s n o n e x is t e n t S t r in g
•N o w , h o w d o y o u d o t h a t w it h v a lu e
t y p e s ?
•S y s t e m . N u lla b le < T > r e p r e s e n t s a c la s s
t h a t w i l l p r o v i d e a v a l u e f o r n o n -e x i s t e n t
t y p e s
.NET 2.0-27

N ul l a b l e c l a s s
• T h in k o f t h is lik e y o u r g o o d o ld U n io n

 

     !#"
$  %&" $'

(  *)+$ ,.-/)0 123 45 
6 !76/
689 1
: 6,

• S h o r t fo r m fo r
N u lla b le < T > is
“T ? ”
$;3 $6=<
:
6/'>!

?@  $ 
A 
BC$6ED

.NET 2.0-28
. N E T 2 . 0 F ea t ur es
• . N E T 2 . 0 W h id b e y
• G e n e r ic s
• P a r t ia l c la s s e s
• A n o n y m o u s m e t h o d s
• N u lla b le c la s s e s
• S t at i c c las s es
• P r o p e r ty e n h a n c e m e n ts
• I te r a to r s
• A s s e m b ly a lia s in g
• R e fa c t o r in g
• C o n c lu s io n
.NET 2.0-29

S t a t ic C l a s s es
• W h a t if y o u n e e d o n ly s t a t ic m e t h o d s in a c la s s
• H o w t o e n s u r e t h a t y o u o n ly h a v e s t a t ic
m e th o d s ?
–U n it t e s t in g y o u s a y ☺
• S t a t ic c la s s
–a llo w s o n ly s t a t ic m e m b e r s
–C a n ’t b e in s t a n t ia t e d
–a r e s e a le d
–c a n ’t c o n t a in a c o n s t r u c t o r
 
$ /) >: /.2>2 
6/E5 /2: 
5-/  -
• C a n ’t b e u s e d a s v a r i a b l e t y p e s , e t c .

.NET 2.0-30
. N E T 2 . 0 F ea t ur es
• . N E T 2 . 0 W h id b e y
• G e n e r ic s
• P a r t ia l c la s s e s
• A n o n y m o u s m e th o d s
• N u lla b le c la s s e s
• S t a t ic c la s s e s
• P r o p er t y en h an c em en t s
• I te r a to r s
• A s s e m b ly a lia s in g
• R e fa c t o r in g
• C o n c lu s io n
.NET 2.0-31

P r o p er t y E n h a n c emen t s
•U n t il n o w , th e g e t a n d s e t m e th o d s o f a
c la s s m u s t h a v e th e s a m e a c c e s s
p r iv ile g e
•W h a t if y o u w a n t t o a llo w g e t f o r p u b lic ,
b u t r e s tr ic t s e t t o d e r iv e d c la s s e s o n ly ?

•N o w , y o u c a n s e t t h e m t o y o u r d e s ir e d
v a lu e in d e p e n d e n t o f e a c h o t h e r

.NET 2.0-32
P r o p er t y E n h a n c emen t s
•S t ill c a n ’t u s e a c c e s s m o d if ie r s o n
in t e r f a c e m e th o d s a n d e x p lic it in t e r f a c e
m e th o d s
•U s e o n ly if y o u h a v e b o th g e t a n d s e t,
a n d th a t t o o o n ly o n o n e o f th e m
•I f y o u a r e o v e r r id in g p r o p e r ty fr o m b a s e ,
y o u n e e d to m a tc h w it h th a t
•Y o u c a n o n ly r e s t r ic t a c c e s s g iv e n a t t h e
p r o p e r t y d e c la r a t io n le v e l

.NET 2.0-33

. N E T 2 . 0 F ea t ur es
• . N E T 2 . 0 W h id b e y
• G e n e r ic s
• P a r t ia l c la s s e s
• A n o n y m o u s m e t h o d s
• N u lla b le c la s s e s
• S t a t ic c la s s e s
• P r o p e r ty e n h a n c e m e n ts
• I t er at o r s
• A s s e m b ly a lia s in g
• R e fa c t o r in g
• C o n c lu s io n
.NET 2.0-34
I t er a t o r
• F o r e a c h r e q u ir e s y o u r c la s s t o im p le m e n t
I E n u m e r a b le in te r fa c e a n d r e tu r n a n
I E n u m e r a to r o n c a ll t o G e tE n u m e r a to r ( )
• W h a t d o e s it ta k e to d o th a t?
–q u it e a n e ffo r t
–o r .N E T 2 .0 m a k e t h a t a b r e e z e
• I t e r a t o r s t a k e c a r e o f k e e p in g t a b o f c u r r e n t
e le m e n t in c o lle c t io n
• y ie ld k e y w o r d d o e s t h e t r ic k
–I t y ie ld s e x e c u t io n t o c o d e u s in g fo r e a c h b u t o n ly
a ft e r r e m e m b e r in g t h e lo c a t io n
–E x e c u t io n r e s t a r t s f r o m h e r e o n n e x t a c c e s s
.NET 2.0-35

I t er a t o r s …
• I te r a t o r s r e t u r n a s e q u e n c e o f v a lu e s
• U s e t h e y ie ld s t a t e m e n t t o r e t u r n a v a lu e o r
v a lu e s
• U s e it o n m e t h o d b o d y , o p e r a t o r o r g e t t e r
–R e t u r n t y p e m u s t b e I E n u m e r a t o r , I E n u m e r a b le o r a
g e n e r ic v e r s io n o f t h e s e
– p a r a m e t e r s c a n ’t b e r e f o r o u t
• N o n e e d to m e s s w it h
I E n u m e r a t o r / I E n u m e r a b le . L e t c o m p ile r t a k e
c a r e o f t h a t
• W h e n u s in g y ie ld
–U n s a fe b lo c k n o t a llo w e d
– C a n ’t a p p e a r i n a n o n y m o u s m e t h o d s , i n f i n a l l y b l o c k ,
in c a t c h b lo c k s o r t r y w it h o n e o r m o r e c a t c h

.NET 2.0-36
. N E T 2 . 0 F ea t ur es
• . N E T 2 . 0 W h id b e y
• G e n e r ic s
• P a r t ia l c la s s e s
• A n o n y m o u s m e t h o d s
• N u lla b le c la s s e s
• S t a t ic c la s s e s
• P r o p e r ty e n h a n c e m e n ts
• I te r a to r s
• A s s em bly ali as in g
• R e fa c t o r in g
• C o n c lu s io n
.NET 2.0-37

E x t er n a l A s s emb l y A l ia s in g
•A llo w s y o u t o r e f e r t o d if f e r e n t v e r s io n s
o f a c o m p o n e n t fr o m t h e s a m e a s s e m b ly

•P r o v id e a n a lia s f o r t h e a s s e m b ly f ir s t

•U s e t h e e x t e r n k e y w o r d t o s p e c if y t h e
a s s e m b ly a lia s

•Y o u c a n u s e a lia s e s t o r e f e r t o d if f e r e n t
v e r s io n s o f t h e c la s s n a m e
.NET 2.0-38
g l o b a l : : n a mes p a c e a l ia s in g
•g lo b a l: : a llo w s y o u t o s p e c if y
n a m e s p a c e s f r o m t h e g lo b a l n a m e s p a c e .

•M a y a ls o u s e a lia s e s in s t e a d o f g lo b a l: :

•A llo w s y o u t o g e t a r o u n d t y p e s t h a t h id e
n a m e s p a c e s in y o u r c o d e

.NET 2.0-39

. N E T 2 . 0 F ea t ur es
• . N E T 2 . 0 W h id b e y
• G e n e r ic s
• P a r t ia l c la s s e s
• A n o n y m o u s m e t h o d s
• N u lla b le c la s s e s
• S t a t ic c la s s e s
• P r o p e r ty e n h a n c e m e n ts
• I te r a to r s
• A s s e m b ly a lia s in g
• R ef ac t o r i n g
• C o n c lu s io n
.NET 2.0-40
R ef a c t o r in g F a c il it ies in V S . N E T 8
•T h e f ir s t s ig n o f r e f a c t o r in g lif e in S t u d io

Popup offers to generate methods


.NET 2.0-41

Quiz Time

.NET 2.0-42
. N E T 2 . 0 F ea t ur es
• . N E T 2 . 0 W h id b e y
• G e n e r ic s
• P a r t ia l c la s s e s
• A n o n y m o u s m e t h o d s
• N u lla b le c la s s e s
• S t a t ic c la s s e s
• P r o p e r ty e n h a n c e m e n ts
• I te r a to r s
• A s s e m b ly a lia s in g
• R e fa c t o r in g
• C o n c lus i o n
.NET 2.0-43

C o n c l us io n
•W e h a v e s e e n a n u m b e r o f
e n h a n c e m e n ts

•S ig n if ic a n t c h a n g e s in c e f ir s t r e le a s e

•S o m e m a jo r s o m e m in o r

•L o o k a h e a d to s e e h o w y o u c a n b e n e f it
fr o m th e s e fe a tu r e s

•H a v e fu n
.NET 2.0-44
R ef er en c es
1. Microsoft Developer Network (MSDN).
h ttp: / / m sd n .m icrosoft.com

2 . h ttp: / / m sd n .m icrosoft.com / vs2 0 0 5

3 . h t t p : / / w w w .A g i l e D e v e l o p e r .c o m / d o w n l o a d .a s p x

Thanks! Please fill out your evaluations!


.NET 2.0-45

You might also like