Skip to Content
Visual Studio Hacks
book

Visual Studio Hacks

by James Avery
March 2005
Intermediate to advanced
304 pages
19h 23m
English
O'Reilly Media, Inc.
Content preview from Visual Studio Hacks
Examine the IL Generated by Your Code #63
Chapter 7, Help and Research
|
247
HACK
.locals init ([0] string s,
[1] string CS$00000003$00000000)
IL_0000: ldsfld string [mscorlib]System.String::Empty
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: stloc.1
IL_0008: br.s IL_000a
IL_000a: ldloc.1
IL_000b: ret
} // end of method Class1::GetBlankString2
At first glance, IL is a little confusing, and I don’t plan on trying to teach you
everything about IL in this hack. But looking at these two simple examples,
you will see one major difference. In the first method, you will see that the
IL_0000: line contains this line of code:
IL_0000: ldstr ""
And on the same line in the second method is this line of code:
IL_0000: ldsfld string [mscorlib]System.String::Empty
To understand these two lines, you first need to understand what the com-
mands
ldstr and ldsfld actually do. The IL command ldstr creates a new
string (or most likely pulls it from the string pool). The IL command
ldsfld
loads a static field from a class. Using the first string method creates a new
string object, whereas the second method simply loads the value of a static
field. To be sure, this is a tiny difference in these two procedures. You would
probably never notice the performance difference between these two meth-
ods, even if you ran the process hundreds of times. But understanding the
difference and how the .NET Framework works is what’s important. ...
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

Mastering Visual Studio .NET

Mastering Visual Studio .NET

Chris Sells, Ian Griffiths, Jon Flanders
C# 4.0 Unleashed

C# 4.0 Unleashed

Bart De Smet
Programming in the .NET Environment

Programming in the .NET Environment

Damien Watkins, Mark Hammond, Brad Abrams

Publisher Resources

ISBN: 0596008473Errata Page