技术开发 频道

Slice2CSharp映射之常量的映射


【IT168技术文档】

  下面是一些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;
  上面的定义生成的代码如下:
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; }
  就像你所看到的,每一个slice常量都被映射为一个和slice常量同名的c#类,类中有一个public类型的字段value,它的值为slice常量的值。有些人可能奇怪,为什么不直接把slice常量映射为c#常量,而要这些大费周折?其实这些做的道理很简单,就是slice支持在module下直接定义常量,而C#则不允许在命名空间下直接定义常量。
0
相关文章