For Dummies C# 2010 All-in-One 978-0-470-56348-9 用户手册

产品代码
978-0-470-56348-9
下载
页码 12
Chapter 1: Programming 
Dynamically!
In This Chapter
✓ 
Understanding dynamic typing
✓ 
Defining variables
✓ 
Putting dynamic to use
✓ 
Making static operations dynamic
F
or many years, I thought that dynamic programming referred to being 
really flashy and flamboyant while writing code. So, I started wearing 
Hawaiian shirts and singing loudly.
Later, I found out this isn’t the case.
Dynamic programming is another one of those buzzwords that really doesn’t 
have a clear definition. At its loosest, it means developing something in such 
a way that the program makes more decisions about the way it runs while 
running, rather than when you compile it.
Scripting languages are a great example of this. When you write something 
in VBScript, you don’t compile it at all — all of the decisions are made at 
runtime. Ruby is another good example: Most of the time, an entire program 
can just be typed into a command prompt and run right from there.
There are examples that are not so good — like VB Classic. Remember the 
Variant type? You could declare a variable to be Variant and VB wouldn’t 
decide what it was supposed to be for real until the program ran. In the 
best of cases, this added immense flexibility to the language. In the worst of 
cases, you got Type Mismatch errors at runtime.
 
To give a concrete example, when you declare a variable in a dynamically 
typed language, you don’t have to say what type you are making that vari-
able. The compiler will just figure it out for you. In a static language, like C# 
3.0, you do have to say what type you are making that variable.
Microsoft originally promised that dynamic types would never be in C#, 
but later decided that the feature had to be added. Why? Mostly, it’s 
because of the development for Microsoft Office (like the reasoning for 
much of the rest of Book VIII). Office uses COM, the pre-.NET structure for 
Microsoft applications. 
53_563489-bk08ch01.indd   769
53_563489-bk08ch01.indd   769
3/19/10   8:17 PM
3/19/10   8:17 PM
COPYRIGHTED MATERIAL