\s class, in regular expressions, 472
SACLs (System ACLs), 349
sandboxing mechanism, 329–330. See also CAS (code access security)
satellite assemblies, 317–318
scalars (integers), 180–182
Scheme language
books about, 80
downloading, 16
typing strategy of, 14, 15
sealed keyword, C#, 57
sealed methods, 57
sealed types, 57
sealed, value types as, 19
searching arrays, 224
searching lists, 237
searching strings, 192
Secure Socket Layer (SSL), 293
security. See also CAS (code access security)
books about, 351
handle recycling attack, 406–408
importance of, 329–330
user-based security
access controls, 348–351
impersonation, 348
simple authentication, 347–348
user identity for, 347–348
security context, preserving, CAS, 346
security transparency, CAS, 346
SecurityException exception, 210
SecurityPermission class, 336
Seek method, Stream class, 259–260
SEH (Structured Exception Handling), 101
semaphores, 373–374
Send method, sockets, 283, 286
separator characters, regional, 308
sequential consistency, 388
serial port, communication using, 282
server garbage collection, 123
server-side sockets, 287–289
SetAccessControl method, files, 273
SetBufferSize method, Console class, 281
SetCursorPosition method, Console class, 281
setters, 43–44, 45
SetValue method, arrays, 224
shared assemblies, 144–145
shl instruction, IL, 91, 560
shr instruction, IL, 91, 560
signaled mutexes, 372
Signature Table, assembly metadata, 136
signatures, P/Invoke, 431–433
signing an assembly, 141–143
simple authentication, 347–348
simple collections, 229–230
Simple Mail Transfer Protocol (SMTP), 297–298
Single Threaded Apartment (STA), 390
single-dimensional arrays (vectors), 216–217, 225
SiteIdentityPermission class, 339
64-bit architecture
JIT (just-in-time) compilation supporting, 131
version 2.0 improvements for, 7
sizeof instruction, IL, 22, 560
sizeof(T) operator, C#, 22
small object GC heap
generations in, 117
memory management of, 115
SMTP server, permission to access, 338
SMTP (Simple Mail Transport Protocol), 297–298
SmtpClient class, 297
SmtpMail class, 298
sn.exe tool, 142, 143
SO (Stack Overflow), 118–119
Social Security Number (SSN), matching, 465–466
Socket method, sockets, 283
sockets
accepting requests, 283, 288–289
binding to address, 283, 287–288
client-side sockets, 290
closing, 284, 287
connecting to end point, 283, 290
creating, 284–286
definition of, 282–283
example of, 289
listening, 283, 288
permission to use, 339
receiving data, 284, 287
sending data, 283, 286–287
server-side sockets, 287–289
Sort method
arrays, 225
lists, 237
SortedDictionary<TKey, TValue> class, 241
sorting arrays, 225
sorting lists, 237
SourceSwitch class, 454–455
specialname keyword, IL, 43, 45
specific cultures, 303, 310
spin-locks, 379–380
spin-loops, 391–392
Split method
Regex class, 487, 488
strings, 191–192
splitting strings, 191–192
SSL (Secure Socket Layer), 293
SSN (Social Security Number), matching, 465–466
STA (Single Threaded Apartment), 390
stack
loading values on
arguments and locals, 89–90
arrays, 99
constants, 88–89
definition of, 87–88
fields, 90
indirect loads, 90
memory management of, 115
storing values from
arguments and locals, 89–90
arrays, 99
definition of, 87–88
fields, 90
indirect stores, 90
for threads, controlling size of, 360–361
stack crawl, 343
Stack Overflow (SO), 118–119
stack transition diagram, 84
stack-based machines, 84–86
StackOverflowException exception, 209
stacks, LIFO, 243–244
Stack<T> class, 243–244
standard devices
communicating through serial port, 282
definition of, 280
reading from, 281
redirecting, 280
writing to, 280–281
standard dictionaries, 239–240
standard error (stderr), 280–281
standard input (stdin), 280, 281
standard lists, 236–239
Standard ML language
tail calls and, 94
typing strategy of, 13
standard output (stdout), 280–281
starg instruction, IL, 89, 560, 573
starvation, 382
static assembly loading, 155–156
static calls, 93–94
static constructors (type constructors), 42
static fields
scalar types used for, 19
thread static fields, 367–368
static literal keywords, IL, 28
static members, 26
static methods, 31
static type annotations, 15
static typing, 13–16
stderr (standard error), 280–281
stdin (standard input), 280, 281
stdout (standard output), 280–281
stelem instruction, IL, 99, 567–568
stfld instruction, IL, 90, 568
stind instruction, IL, 90, 560–561
stloc instruction, IL, 89, 561, 573–574
stobj instruction, IL, 561
Stopped state, Thread object, 358
StopRequested state, Thread object, 358
store release, instruction reordering, 388
streams
asynchronous I/O using, 261–264
buffered streams, 278
buffering reads and writes, 260–261
closing and disposing stream, 260
compressed streams, 278–279
definition of, 255–256
memory streams, 279–280
readability of, 257
readers for
binary readers, 264, 268–271
definition of, 264–265
text readers, 264–268
reading data using, 256–258, 260–264
seeking data using, 259–260
writers for
binary writers, 264, 268–271
definition of, 264–265
text writers, 264–268
writing data using, 258–259, 260–262
string freezing, NGen, 165
string interning, 88
string type, IL, 172
StringBuilder class, 202
String.Format method, 186
StringReader class, 267–268
strings
accessing contents of, 186–187
books about, 213
building, 202
case conversions of, 188, 323–325
comparisons, 187–188, 322–325
concatenating, 185
definition of, 184–185
formatting, 186, 196–200
manipulation of, cultures and, 321–325
merging, 192
modifying, 188–192
padding, 190–191
parsing, 200–201
readers for, 267–268
replacing or removing parts of, 189
searching, 192
sorting, 323–325
splitting, 191–192
substrings of, 191
trimming, 189–190
Unicode used for, 302
StringWriter class, 267–268
strong name of assembly, 133, 135, 141–143, 339
strongly typed resources, 318–319
StrongNameIdentityPermission class, 339
struct constraint, 77
struct keyword, C#, 20
Structured Exception Handling (SEH), 101
structures (structs). See value types
stsfld instruction, IL, 90
sub instruction, IL, 91, 561–562
subclassing
inheritance used by, 50–51
methods and, 35–38
of types, 49–50
Substring method, strings, 191
substrings, 191
subtracted character classes, in regular expressions, 473
Sun Java platform, 4
SuppressFinalize method, GC class, 203
Suspended state, Thread object, 358
SuspendRequested state, Thread object, 358
Switch class, 454
switch instruction, IL, 562
sync-block, 21
synchronized methods, 371–372
SyncLock keyword, VB, 36
System ACLs (SACLs), 349
system exceptions, 209–210
System.Activator class, 505–506
System.Array type, BCL, 220–225
System.Attribute type, BCL, 64, 515
System.Boolean type, BCL, 17, 172, 184
System.Byte type, BCL, 17, 172, 181–182
System.Char type, BCL, 17, 172, 181, 182
System.Collections.ArrayList type, BCL, 72, 247
System.Collections.BitArray class, 247
System.Collections.CollectionBase class, 247
System.Collections.Generic namespace, 225, 226
System.Collections.Generic.List<T> type, BCL, 74, 236–239
System.Collections.Hashtable class, 247
System.Collections.ObjectModel.Collection<T> class, 241–242
System.Collections.Queue class, 247
System.Collections.SortedList class, 247
System.Collections.Stack class, 247
System.DateTime type, BCL, 172, 192–195
System.Decimal type, BCL, 172, 183–184
System.Delegate type, BCL, 60
System.Diagnostics namespace, 441
System.Double type, BCL, 18, 172, 183
System.Enum type, BCL, 65, 69
System.Exception type, BCL, 102, 110–111
System.FlagsAttribute attribute, 67
System.GC class, 202–204
System.Globalization.NumberFormatInfo class, 196–200
System.Int16 type, BCL, 17, 172, 181
System.Int32 type, BCL, 17, 172, 181
System.Int64 type, BCL, 17, 172, 181
System.IntPtr type, BCL, 18, 172, 192, 405–406
System.IO.BinaryReader class, 268
System.IO.BinaryWriter class, 268
System.IO.Compression namespace, 278
System.IO.Compression.DeflateStream class, 278–279
System.IO.Compression.GZipStream class, 278–279
System.IO.IsolatedStorage namespace, 337
System.IO.Ports namespace, 282
System.IO.Ports.SerialPort class, 282
System.IO.Stream class
asynchronous I/O using, 261–264
buffering reads and writes, 260–261
closing and disposing stream, 260
readability of, 257
reading data using, 256–258, 260–264
seeking data using, 259–260
writing data using, 258–259, 260–262
System.IO.TextReader class, 265
System.IO.TextWriter class, 265
System.Math class, 205–207
System.Net namespace, 282
System.Net.Dns class, 290
System.Net.DnsPermission class, 338
System.Net.NetworkInformation namespace, 290
System.Net.NetworkInformationPermission class, 338
System.Net.SmtpPermission class, 338
System.Net.SocketPermission class, 339
System.Net.WebPermission class, 339
System.Nullable<T> type, BCL, 22, 23–24, 93
System.Object type, BCL
converting to string, 179
definition of, 16–17, 172, 173
equality methods for, 173–176
finalizers for, 177–179
hash codes for, 176
type identity of, 179
System.Random class, 207–208
System.Reflection.Assembly type, 157, 498
System.Reflection.AssemblyKeyFileAttribute attribute, C#, 142
System.Reflection.AssemblyName type, 137
System.Resources.ResourceManager class, 319
System.Runtime.InteropServices.SafeHandle class, 412–416
System.Runtime.InteropServices.StructLayoutAttribute attribute, 29
System.SByte type, BCL, 17, 172, 181
System.Security.AccessControl namespace, 348–349
System.Security.AllowPartiallyTrustedCallersAttribute (APTCA), 332–333
System.Security.Cryptography.RandomNumberGenerator class, 208
System.Security.Permissions namespace, 331
System.Security.Permissions.CodeAccessPermission class, 335
System.Security.Policy namespace, 330, 334
System.Security.Policy.CodeGroup class, 334–335
System.Single type, BCL, 18, 172, 183
System.String type, BCL, 172, 184–185
System.Text.Encoding type, 320–321
System.Text.RegularExpressions namespace, 463, 482
System.Text.RegularExpressions.Regex class, 466, 482–488
System.Transactions namespace, 535
System.Transactions.DistributedTransactionPermission class, 339
System.Type class, 500–502, 505–506
System.UInt16 type, BCL, 17, 172, 181
System.UInt32 type, BCL, 17, 172, 181
System.UInt64 type, BCL, 17, 172, 181
System.UIntPtr type, BCL, 18, 172, 405
System.ValueType type, 16
System.Void type, BCL, 18
system-wide culture, 313