2011-02-10 44 views
1

VB.NET 2010,.NET 4VB.NET有沒有辦法創建一個預處理器常量,其行爲如同簡單的文本替換?

你好,

我想這樣做(類似)如下:

\#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 

這不是那麼多,我這種方式來做到這一點,我只是好奇,如果這樣的事情是可能的。

在此先感謝!

Brian

+1

C程序員如何最終編寫VB.NET代碼?當然這不起作用。它永遠不會。永遠。 – 2011-02-10 01:18:06

+0

好的,我可以接受。有沒有可能詳細說明爲什麼?我只是想明白。 – 2011-02-10 01:20:56

回答

2

不,這是不可能的。 Visual Basic和C#設計人員決定不允許類似C的預處理器,因爲他們認爲這導致了很多錯誤和混淆。編寫非預期行爲的C宏非常容易,VB和C#設計人員認爲廣泛開發人員的安全性優先。因此,在VB和C#中定義的只是'已定義'或'未定義',而不是具有值。

Eric Gunnerson discusses this from a C# perspective here,我認爲VB.NET的設計推理基本上是一樣的。