VB.NET有没有办法创建一个预处理器常量,表现为简单的文本替换?

时间:2011-02-10 01:12:02

标签: vb.net preprocessor constants const substitution

VB.NET 2010,.NET 4

您好,

我想做(如下):

\#Const T = "Byte()"

Public Class MyClass
  Inherits SomeGenericClass(Of T)

  .. other code ..
End Class

让它的行为与我输入的行为相同

Public Class MyClass
  Inherits SomeGenericClass(Of Byte())

  .. other code ..
End Class

并不是说我这样做,我只是好奇这样的事情是否可能。

提前致谢!

布赖恩

2 个答案:

答案 0 :(得分:2)

不,这是不可能的。 Visual Basic和C#设计者决定不允许类似C的预处理器,因为他们觉得它导致了很多错误和混乱。编写以非预期方式运行的C宏非常容易,VB和C#设计人员认为广泛的开发人员的安全性是优先考虑的。因此,VB和C#中的定义只是“已定义”或“未定义”而不是具有值。

Eric Gunnerson discusses this from a C# perspective here,我认为VB.NET的设计推理基本相同。

答案 1 :(得分:1)

你只有:#Const #If #Else #Endif 但是,您可以使用其他程序生成代码。