Chapter 26. System

In many respects, the System namespace serves as the core namespace for the .NET libraries, in much the same way as java.lang does for Java programmers or stdlib.h does for C/C++ programmers. For example, the ECMA-compliant primitive-type value types are defined in the System namespace, along with complementary composite types and base types. These are used in the synthesis of type generation, which is done by the compiler on the .NET programmer’s behalf (for an example of this on-the-fly type synthesis, see Array). Figure 26-1 shows many of the types in this namespace.

System serves as the home for key base-type definitions, including Object, the root of every type in the .NET hierarchy. Every type in the system ultimately extends this class, making it the “root of all evil” in .NET. In addition, this namespace contains ValueType, the base type for all value types in .NET (such as the primitive types listed later in this chapter, shown in Figure 26-5), and Type, which in turn represents compile-time type information about other types defined within the .NET environment (the type metadata). More on Type can be found in Chapter 35.

ECMA-compliant primitive-type value types include the fundamental types used for all .NET applications, which are basic value types such as Int32, Single, Double, Decimal, Char, Byte, and Boolean. All of the primitive types are aliased in C# with keywords such as int, double, and bool. See the description of each type for more details. ...

Get C# in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.