Skip to Content
Programming C# 5.0
book

Programming C# 5.0

by Ian Griffiths
October 2012
Intermediate to advanced
882 pages
30h 2m
English
O'Reilly Media, Inc.
Content preview from Programming C# 5.0

Chapter 14. Dynamic Typing

C# is primarily a statically typed language, meaning that before your code even runs, the compiler determines a type for each variable, property, method argument, and expression. This is called the static type of the relevant item, because it never changes after being established at compile time. There is some scope for runtime variability, thanks to inheritance and interfaces. A variable whose static type is a class can refer to an object whose type derives from that class; if the static type is an interface, the variable can refer to any object that implements that interface. With virtual methods or interfaces, this leads to runtime selection of which methods get invoked, but the variation is strictly circumscribed by the rules of the type system. Even with virtual method dispatch, the compiler knows which type defined the method you are invoking even if some derived type may have overridden it.

Dynamic languages take a much more relaxed view. The type of any variable or expression is determined by whatever value it happens to have at runtime. This means that a particular piece of code’s arguments and variables could have different types each time it runs, and the compiler knows nothing about what those types may be. Of course, that’s true for variables with a static type of object in C#, but the problem with object is that you can’t do much with it. And this is the critical difference between static and dynamic typing: with static typing, the compiler ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Programming C# 10

Programming C# 10

Ian Griffiths
Programming C# 4.0, 6th Edition

Programming C# 4.0, 6th Edition

Ian Griffiths, Matthew Adams, Jesse Liberty
Programming C# 3.0, 5th Edition

Programming C# 3.0, 5th Edition

Jesse Liberty, Donald Xie

Publisher Resources

ISBN: 9781449333416Errata Page