C# in depth:
Saved in:
Main Author: | |
---|---|
Format: | Book |
Language: | English |
Published: |
Shelter Island, NY
Manning
2014
|
Edition: | 3. ed. |
Series: | Programming laguages
|
Subjects: | |
Links: | http://swbplus.bsz-bw.de/bsz346177774cov.htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026984297&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
Physical Description: | XXX, 582 S. graph. Darst. 24 cm |
ISBN: | 9781617291340 161729134X |
Staff View
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV041538495 | ||
003 | DE-604 | ||
005 | 00000000000000.0 | ||
007 | t| | ||
008 | 131220s2014 xx d||| |||| 00||| eng d | ||
020 | |a 9781617291340 |9 978-1-617291-34-0 | ||
020 | |a 161729134X |9 1-617291-34-X | ||
035 | |a (OCoLC)861768378 | ||
035 | |a (DE-599)BVBBV041538495 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-573 | ||
082 | 0 | |a 005.133 | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
100 | 1 | |a Skeet, Jon |e Verfasser |4 aut | |
245 | 1 | 0 | |a C# in depth |c Jon Skeet |
250 | |a 3. ed. | ||
264 | 1 | |a Shelter Island, NY |b Manning |c 2014 | |
300 | |a XXX, 582 S. |b graph. Darst. |c 24 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Programming laguages | |
650 | 4 | |a C# (Computer program language) | |
650 | 0 | 7 | |a C sharp |0 (DE-588)4616843-6 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a C sharp |0 (DE-588)4616843-6 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m V:DE-576;X:oreilly |q application/pdf |u http://swbplus.bsz-bw.de/bsz346177774cov.htm |3 Umschlagbild |
856 | 4 | 2 | |m Digitalisierung UB Bamberg - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026984297&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-026984297 |
Record in the Search Index
_version_ | 1819313971598983168 |
---|---|
adam_text | brief
Contents
1 ■
The changing face of C# development
3
2 ■
( ore foundations: building on C#
1 29
,;·
Sí
( -V
ss
ι
soi
í
- :
,*,,.......^.,
........,_..,
JV7
3
■
Parameterized typing with
generics
59
4 ■
Saying nothing with nullable types
105
5 ■
Fast-tracked delegates
133
6 ■
Implementing iterators the easy way
159
7 ■
Concluding G#
2:
the final features
182
ΐ Η:
RfA orUTTONIZINC;
ОЛТ
ACCESS
..........„.„...„.... 205
8 ■
Cutting fluff with a smart compiler
207
9 ■
Lambda expressions and expression trees
232
10 ■
Extension methods
262
11 ■
Quer expressions and LINQ to Objects
285
12 ■
LINQ beyond collections
328
VII
VUl BRIEF CONTENTS
î>-
і
С#4:
Plavim* nickln
πίι
others
13 ■
Minor changes to simplify code
371
14 ■
Dynamic binding in a .static language
409
? ¥t
5 (.:# 3:
ASWUIKONY
MUH,
SIVIPI.K
..............................461
15 ■
Asynchrony with async/await
463
16 ■ (]# 5
bonus features and closing thoughts
519
contents
fomvord
xix
preface
xxi
acknowledgments
xxii
about this book
xxiv
about the author
xxix
about the cover illustration
xxx
и
і
Preparing
fok.
the
гои
The changing face ofC# development
3
1.1
Starting with a simple data type
4
The Product type in CM
1 5 ■
Strongly typed collections in CM
2 6
Automatically implemented proper lies in CM
3 7 ■
Named
arguments in CM
4 8
1.2
Sorting and filtering
9
Sorting products by name
9·
Querying collections
12
.3
Handling an absence of data
14
Representing an unknown
pńce
14 ■
Optional
parameiers
and
default values
16
1.4
Introducing LINQ
16
Query expressions and in-process queries
17 ■
Querying
XML
18·
UNQtoSaL
19
IX
CONTENTS
1.5 COM and
dynamie
typing
20
Simplifying COM
ι
нІтфтіЬШіу
20 ■
Interoperaling with a
dynamic language
21
1.()
Writing asynchronous code without the heartache
22
1.7
Dissecting the .NET platform
23
(M, the language
24 ■
Runtime
24 ■
Framework
Uhraneš
24
1.8
Making youi code super awesome
25
Presenting full programs as snippets
25 ■
Didactic code isn t
production code 2b
■
Your new best.
/Herid:
the language
specification
27
1.9
Summary
28
Core foundations: building on
Cê
1 29
2.1
Delegates
30
A recipe for simple delegates
30 ■
Combining and removing
delegates
35 ■
A brie/ diversion into events
36 ■
Summary of
delegates
31
2.2
Type system characteristics
38
C# s place in the world of type systems
38 ■
When is CM
1
s type
system not rich enough?
41 ■
Summary of type system
characteristics
44
2.3
Value types and reference types
44
Values and references in the real world
45 ■
Value and reference
type fundamentals
46 ■
Dispelling myths
47 ■
Boxing and
unboxing
49 ■
Summary of value types and reference types
50
2.4
Beyond C#
1:
new features on a solid base
51
Features related to delegates
51 ·
Features related to the type
system
53 ■
Features related to value types
55
2.5
Summary
56
PiDT
9
í4íí
9*
Qi Yï
і/їх?/-·
ηρϊΐΐ?
teef
лго
m:
5
Parameterized typing with
generìcs
59
3.1
Why
generics
are necessary
60
3.2
Simple generics for everyday use
62
Learning by example: a generic dictionary
62 ■
Generic types and
type parameters
64 ■
Generic methods and reading generic
declarations
67
CONTENTS Xl
3.3
Beyond the basics
70
Type constraints
11 ■
Type inference for type arguments of generic
methods
76 ■
Implementing genetics
11
3.4
Advanced generics
83
Static fields and static constructors
84 ■
I low the JIT compiler
handles generics
85 ■
Ce
n
eric iteration S7
■
Reflection and
generics
90
3.5
Limitations
oí
generics in C# and other languages
94
Lack of generic variance
94 ·
l
лек
of operator constraints
ora
numeric constraint
99 ■
Lack oj generic properties,
indexers,
and other member types
101 ■
Comparison with
C++
templates 1
01 ■
Comparison with Java generics
103
3.6
Summary
104
Saying nothing ivith nullable types
105
4.1
What do you do when you just don t have a value?
106
Why value type variables can t be null
Ì
06
Patterns for representing null values in C #
/ 107
4.2
System.Nullable<T> and System.Nullable
109
Introducing Nullahle<T>
109 ■
Boxing Nullable<T> and
unboxing
112·
Equality of Nullable<T> instances
113
Support from the nongeneric Nullable class
114
4.3
C# 2 s syntactic sugar for nullable types
114
The
?
modifier
115·
Assigning and comparing with null
116
Nullable conversions and operators
118·
Nul!
able logic
121
Using the as operator with nullable types
123 ·
The null
coalescing operator
123
4.4
Novel uses of nullable types
126
Trying an operation without using output parameters
127
Painless comparisons with the null coalescing operator
129
4.5
Summary
131
Fast-tracked delegates
133
5.1
Saying goodbye to awkward delegate syntax
134
5.2
Method group conversions
136
5.3
Covariance and contravariance
137
Contravanance for delegate parameters
138 ·
Covariance of
delegate return types
139 ·
A small risk of incompatibility
141
Xli CONTENTS
5.4
Inline delegate actions with anonymous methods
142
Slatting simply: acting on a parameter
142 ■
Returning values
from anonymous methods
145 ■
Ignoring delegate
parameters
/76
5.5
Capturing variables in anonymous methods
148
Defining closures and different types of variables
Ì4H
Examining the behavior of captured variables
149 ·
What s
the point of captured variables
? ¡51 ·
The extended lifetime of
captured variables
152·
Local variable instantiations
153
Mixtures of shared and distinct variables
155 ■
Captured
variable guidelines and summary
156
5.6
Summary
158
Implementing iterators the easy way
159
6.1
C#
1:
The pain of handwritten iterators
160
6.2
C#
2:
Simple iterators with yield statements
163
Introducing iterator blocks and yield return
163 ·
Visualizing
an iterator s xuorkflotu
165 ■
Advanced iterator execution
floxu
167·
Quirks in the implementation
170
6.
S
Real-life iterator examples
172
Iterating over the dates in a timetable
172 ■
Iterating over lines in
a file
173 ■
Filtering items lazily using an iterator block and a
predicate
176
6.4
Pseudo-synchronous code with the Concurrency and
Coordination Runtime
178
6.5
Summary
180
Concluding C#
2:
the final features
182
7.1
Partial types
183
Creating a type with multiple files
184 ■
Uses of partial
types
186 ■
Partial methods
—
C#
3
only!
188
7.2
Static classes
190
7.3
Separate getter/setter property access
192
7.4
Namespace aliases
193
Qualifying namespace aliases
194·
The global namespace
alias
195 ·
Extern aliases
196
CONTENTS XIII
7.5
Pragma directives
197
Warning pragmas
197·
Checksum pragmas
198
7.6
Fixed-size
bulíeis
in unsafe code
199
7.7
Exposing internal members to selected assemblies
201
Friend assemblies in /he simple case
201 ■
Why use
liilcnialsVisible ľo?
202 ·
fntcrnalsVisible ľo
and signed
assemblies
203
7.8
Summary
204
Cutting fluffwith a smart compiler
207
8.1
Automatically implemented properties
208
8.2
Implicit typing of local variables
211
Using
var
to declare a local variable
21
1
■
Restrictions on implicit
typing
213*
Pros and cons of implicit typing
214
Rprom tnendations
215
8.3
Simplified initialization
216
Defining some sample types
216 ■
Setting simple properties
217
Setting properties on embedded objects
219 ■
Col led ion
initializers
220*
Uses of initialization features
223
8.4
Implicitly typed arrays
224
8.5
Anonymous types
225
First encounters of the anonymous land
225 ■
Members of
anonymous types
227·
Projection initializers
228·
What s the
point?
229
8.6
Summary
231
Lambda expressions and expression trees
232
9.1
Lambda expressions as delegates
234
Preliminaries: Introducing the Func<.
.. >
delegate types
234
First transformation to a lambda expression
235 ·
Using a single
expression as the body
236 ·
Implicitly typed parameter lists
236
Shortcut for a single parameter
237
9.2
Simple examples using List<T> and events
238
Filtering, sorting, and actions on lists
238 ■
Fogging in an event
handler
240
XIV CONTENTS
9.3 Expression
trees
241
Building
expression trees programmatically
242 ■
Compiling
expression
Ures
into
delégales
243 ·
Converting
СЛ
lambda
expressions to expression trees
244 ■
Expression trees at the heart of
UN(¿
248 ■
Expression
trees beyond UNQ
249
9.4
Changes to type inference and overload resolution
251
Reasons for change: streamlining generic method calls
252
Inferred return types of anonymous functions
253 ■
Txuo-f)hase
type inference
254 я
Picking the. right overloaded method
258
Wrapping up type inference and overload resolution
260
9.5
Summary
260
Extension methods
262
10.1
Life before extension methods
263
10.2
Extension method syntax
265
Declaring extension methods
265 ■
Calling extension
methods
267ш
Extension method discovery
268·
Calling a
method on a null reference
269
10.3
Extension methods in .NET
3.5 271
First steps with Enumerable
271 ■
Filtering with Where and
chaining method calls together
273 ·
Interlude: haven t we seen
the
Wime
method before
f
275 ·
Projections using the Select method
and anonymous types
276 ■
Sorting using the OrderBy
method
277 ■
Business examples involving chaining
278
10.4
Usage ideas and guidelines
280
Extending the world and making interfaces richer
280·
Huent
interfaces
280 ■
Using extension methods sensibly
282
10.5
Summary
284
Query
expresnom
and LINQ to Objects
285
1 11.1
Introducing LINQ
286
Fundamental concepts in LINQ
286 ■
Defining the sample data
model
291
11.2
Simple beginnings: selecting elements
292
Starting with a source and ending with a selection
293 ■
Compiler
translations as the basis of query expressions
293 ■
Range
variables and
nontrivial
projections
296 ■
Cast,
Ofľype,
and
explicitly typed range variables
298
CONTENTS
XV
11.3
Filtering and ordering a sequence
300
Fìlterìng
using a wfiere. clause
300 ■
Degenerate query
expressions
301 ■
Ordering using an orderby clause
302
11.4
Let clauses and transparent identifiers
304
Introducing an
intermediale
computation
wil
h
let
305
Transparent identifiers
306
11.5
Joins
307
Inner joins using join clauses
307 ■
Group joins with. join...into
clauses
31 }·
Cross joins and flattening sequences using multiple
from clauses
314
11.6
Groupings and continuations
318
Grouping with the group...by clause
318 ■
Query
continuations
321
11.7
Choosing between query expressions and dot
notation
324
Operations that require dot notation
324 ■
(¿uery expressions
where dot notation may be simpler
325 ■
Where query expressions
shine
325
11.8
Summary
326
LINQ beyond collections
328
12.1
Querying a database with LINQ to SQL
329
Getting started: the database and model
330 ■
Initial
queries
332 ■
Queries involving joins
334
12.2
Translations using IQueryable and IQueryProvider
336
IntroducingIQueryable<T> and related interfaces
337 ·
Faking
it: interface implementations to log calls
338 ■
Gluing expressions
together: the Queryable extension methods
341 ■
The fake query
provider in action
342 ■
Wrapping up fQueryable
344
12.3
LINQ-friendly APIs and LINQ to XML
344
Core types in LINQto XML
345 ■
Declarative construction
347
Queries on single nodes
349·
Flattened query operators
351
Working in harmony with LINQ
352
12.4
Replacing LINQ to Objects with Parallel LINQ
353
Plotting the Mandelbrot set with a single thread
353 ■
Introducing
ParallelEnumerahle, ParallelQuery, and AsParallel
354
Tweaking parallel queries
356
XVI CONTENTS
12.
Γ)
Inverting
tlu*
quay model with LINQ to Rx
357
l()bsen>(ible<T> and ¡()bsmwr<T>
358 ■
Starling simply
(again) 3M)
■
(¿unying
observables
360·
What s
lhe
¡нині?
36
З
12.0
KxtaidingUNQ
lo
Objects
.404
Design and implementation guidelines
364 ■
Sample extension:
seiet
ling a random
riemen
I
365
12.7
Summary
367
: -
í.
П/т (.
NiCľl.Y Wľľll
OTIIKKS
...............369
Minor changes to simplify code
371
13.1
Optional parameters and named arguments
372
Optional parameters
372·
Named arguments
37
Η
*
Putting
the two together
382
13.2
Improvements for COM interoperability
387
The horrors of automating Word before C#
4 387 ·
The revenge of
optional parameters and named arguments
388 ■
When is a ref
parameter
nol
a ref
paraméteri
389 ■
Calling named
indexers 390·
Linking primary inlerop assemblies
391
13.3
Generic variance for interfaces and delegates
394
Types of variance: awariance and contravariance
394 ■
ř/smg
variance in interfaces
396 ■
i/îiîig
variance in delegates
399
Complex situations
399 ■
Restrictions and notes
401
13.4
Teeny tiny changes to locking and field-like events
405
Robust locking
405 ■
Changes to field-like events
406
13.5
Summary
407
/I Dynamic binding in a static language
409
14.1
What? When? Why? How?
411
What is dynamic typing?
411 ■
When is dynamic typing useful,
anduihy?
412 ·
How does C#
4
provide dynamic typing?
413
14.2
The five-minute guide to dynamic
414
14.3
Examples of dynamic typing
416
COM in general, and Microsoft Office in
particular
417 ■
Dynamic languages such as IronPython
419
Dynamic typing in purely managed code
423
CONTENTS XVII
■ RT5
14.4
Looking behind the scenes
429
Introducing the Dynamic Language Runtime
429 ■
Dl.R
coir
concepts
431 ■
Ного
(he CM compiler handles dynamic
434
The CM compilngels even smarter 43H
·
Restrictions on dynamic
code
44
1
14.5
Implementing dynamic behavior
444
Using FxpandoObject
444 ■
Using DynamicObjecl 44H
Implementing IDynaniicMelaObjectProxiider
455
14.6
Summary
459
Asynchrony
with async/await
463
15.1
Introducing asynchronous functions
465
First encounters of the asynchronous kind
465 ■
Breaking down
the first example
467
15.2
Thinking about
asynchrony
468
Fundamentals of asynchronous execution 46S
■
Modeling
asynchronous methods
4 71
15.3
Syntax and semantics
472
Declaring an async method
472*
Return types from
asy
n c
methods
473 я
The
awaüable
pattern
474·
The flow of await
expressions
477*
Returning
fröman
async method
4SI
Exceptions
482
15.4
Asynchronous anonymous functions
490
15.5
Implementation details: compiler transformation
492
Overview of the generated code
493 ■
Structure of the skeleton
method
495 я
Structure of the slate machine
497*
One entry
point to rule them all
498 *
Control around await
expressions
500*
Keeping I rack of a stack
501 ■
Finding out
more
503
15.6
Using async/await effectively
503
The task-based asynchronous
paltem
504 *
Composing async
operations
507*
Unit testing asynchronous code
511
The
awaüable
pattern redux
515 ·
Asynchronous operations in
WinRT
516
15.7
Summary
517
xviii CONTENTS
C# 5
bonus features
and closing thoughts
519
16.1 (
¡hanges
to captured variables in
ťoreach
loops
520
16.2
Caller information attributes
520
Hasit
behavior
521 ■
Logging
522·
Implementing
¡Not
ifyľmpntyí
hanged
523 ·
Using caller information attributes
without .NET
4.5 524
КІ.З
Closing thoughts
525
appendix A LI
N(¿
.standard
q
any
Operators 527
appendix
В
Generic collections in .NET
540
appendix
(]
Version summaries
554
index
563
|
any_adam_object | 1 |
author | Skeet, Jon |
author_facet | Skeet, Jon |
author_role | aut |
author_sort | Skeet, Jon |
author_variant | j s js |
building | Verbundindex |
bvnumber | BV041538495 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)861768378 (DE-599)BVBBV041538495 |
dewey-full | 005.133 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.133 |
dewey-search | 005.133 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 3. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01429nam a2200385 c 4500</leader><controlfield tag="001">BV041538495</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">00000000000000.0</controlfield><controlfield tag="007">t|</controlfield><controlfield tag="008">131220s2014 xx d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781617291340</subfield><subfield code="9">978-1-617291-34-0</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">161729134X</subfield><subfield code="9">1-617291-34-X</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)861768378</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV041538495</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-573</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Skeet, Jon</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">C# in depth</subfield><subfield code="c">Jon Skeet</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Shelter Island, NY</subfield><subfield code="b">Manning</subfield><subfield code="c">2014</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXX, 582 S.</subfield><subfield code="b">graph. Darst.</subfield><subfield code="c">24 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Programming laguages</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">C# (Computer program language)</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C sharp</subfield><subfield code="0">(DE-588)4616843-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">C sharp</subfield><subfield code="0">(DE-588)4616843-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">V:DE-576;X:oreilly</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://swbplus.bsz-bw.de/bsz346177774cov.htm</subfield><subfield code="3">Umschlagbild</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026984297&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-026984297</subfield></datafield></record></collection> |
id | DE-604.BV041538495 |
illustrated | Illustrated |
indexdate | 2024-12-20T16:48:37Z |
institution | BVB |
isbn | 9781617291340 161729134X |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-026984297 |
oclc_num | 861768378 |
open_access_boolean | |
owner | DE-573 |
owner_facet | DE-573 |
physical | XXX, 582 S. graph. Darst. 24 cm |
publishDate | 2014 |
publishDateSearch | 2014 |
publishDateSort | 2014 |
publisher | Manning |
record_format | marc |
series2 | Programming laguages |
spellingShingle | Skeet, Jon C# in depth C# (Computer program language) C sharp (DE-588)4616843-6 gnd |
subject_GND | (DE-588)4616843-6 |
title | C# in depth |
title_auth | C# in depth |
title_exact_search | C# in depth |
title_full | C# in depth Jon Skeet |
title_fullStr | C# in depth Jon Skeet |
title_full_unstemmed | C# in depth Jon Skeet |
title_short | C# in depth |
title_sort | c in depth |
topic | C# (Computer program language) C sharp (DE-588)4616843-6 gnd |
topic_facet | C# (Computer program language) C sharp |
url | http://swbplus.bsz-bw.de/bsz346177774cov.htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026984297&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT skeetjon cindepth |