Here are the sample constant definitions once more:

{zcode:slice}
const bool      AppendByDefault = true;
const byte      LowerNibble = 0x0f;
const string    Advice = "Don't Panic!";
const short     TheAnswer = 42;
const double    PI = 3.1416;

enum Fruit { Apple, Pear, Orange };
const Fruit     FavoriteFruit = Pear;
{zcode}

Here are the generated definitions for these constants:

{zcode:cs}
public abstract class AppendByDefault
{
    public const bool value = true;
}

public abstract class LowerNibble
{
    public const byte value = 15;
}

public abstract class Advice
{
    public const string value = "Don't Panic!";
}

public abstract class TheAnswer
{
    public const short value = 42;
}

public abstract class PI
{
    public const double value = 3.1416;
}

public enum Fruit { Apple, Pear, Orange }

public abstract class FavoriteFruit
{
    public const Fruit value = Fruit.Pear;
}
{zcode}

As you can see, each Slice constant is mapped to a class with the same name as the constant. The class contains a member named value that holds the value of the constant.

The mapping to classes instead of to plain constants is necessary because C# does not permit constant definitions at namespace scope.

See Also