Skip to Main Content
C# Cookbook, 2nd Edition
book

C# Cookbook, 2nd Edition

by Jay Hilyard, Stephen Teilhet
January 2006
Intermediate to advanced content levelIntermediate to advanced
1184 pages
43h 23m
English
O'Reilly Media, Inc.
Content preview from C# Cookbook, 2nd Edition
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Initializing a Constant Field at Runtime
|
179
public class Foo
{
public readonly int bar;
public Foo( ) {}
public Foo(int constInitValue)
{
bar = constInitValue;
}
// Rest of class...
}
This is not possible using a const field. A const field can be initialized only at com-
pile time:
public class Foo
{
public const int bar; // This line causes a compile-time error.
public Foo( ) {}
public Foo(int constInitValue)
{
bar = constInitValue; // This line also causes a compile-time error.
}
// Rest of class...
}
Discussion
A readonly field allows initialization to take place only in the constructor at runtime,
whereas a
const field must be initialized at compile time. Therefore, implementing a
readonly field is the only way to allow a field that must be constant to be initialized
at runtime.
There are only two ways to initialize a
readonly field. The first is by adding an initial-
izer to the field itself:
public readonly int bar = 100;
The second way is to initialize the readonly field through a constructor. This is dem-
onstrated through the code in the Solution to this recipe.
If you look at the following class:
public class Foo
{
public readonly int x;
public const int y = 1;
public Foo( ) {}
This ...
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.
Start your free trial

You might also like

C# Cookbook

C# Cookbook

Joe Mayo
C# Cookbook

C# Cookbook

Stephen Teilhet, Jay Hilyard
Head First C#, 4th Edition

Head First C#, 4th Edition

Andrew Stellman, Jennifer Greene

Publisher Resources

ISBN: 0596100639Supplemental ContentCatalog PageErrata