Table of Contents Previous Next
Logo
Client-Side Slice-to-C# Mapping : 14.8 Mapping for Constants
Copyright © 2003-2009 ZeroC, Inc.

14.8 Mapping for Constants

Here are the constant definitions we saw in Section 4.9.5 on page 109 once more:
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;
Here are the generated definitions for these constants:
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;
}
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.1

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

Table of Contents Previous Next
Logo