这是我脑海中浮现的一个问题:Is it possible to show only property(ies) based on what the user has passed parameter in the contructor?为了使这个问题更清楚,我将说明一个带有一些属性的简单类。

Public Class SampleClass

    Dim _ForA as string
    Dim _ForB as string

    Public ReadOnly Property PropertyA as String
        Get
            return _ForA
        End Get
    End Property

    Public ReadOnly Property PropertyB as String
        Get
            return _ForB
        End Get
    End Property

    Public Sub New(SelectProp as string)

    End Sub

End Class


如果用户将在构造函数中传递A(字符串),则仅显示PropertyA,如果传递了B,则仅显示PropertyB.Net中可能吗?

这是另一回事。我在互联网上的某些代码中找到了此声明。您能解释一下声明中发生了什么吗?

Imports System.Data

#If DBType = "OLEDB" THEN
Imports System.Data.OleDB
#End IF

#If DBType = "SQLClient" THEN
Imports System.Data.SqlClient
#End IF


谢谢。

最佳答案

名称是条件编译
您可以使用条件编译来选择要编译的代码的特定部分,而排除其他部分。例如,您可能想编写调试语句,以比较不同方法对同一编程任务的速度,或者您可能希望为多种语言本地化应用程序。条件编译语句设计为在编译时运行,而不是在运行时运行。

您使用#Const指令在代码中声明了条件编译器常量,并表示使用#If ... Then ...#Else指令有条件地编译代码块。例如,要从相同的源代码创建同一应用程序的法语和德语版本,可使用预定义的常量FrenchVersion和GermanVersion将平台特定的代码段嵌入在#If ... Then语句中。以下示例演示了如何

#If FrenchVersion Then
   ' <code specific to the French language version>.
#ElseIf GermanVersion Then
   ' <code specific to the German language version>.
#Else
   ' <code specific to other versions>.
#End If


读这个
Conditional Compilation

10-04 14:20