VB.NET如何让人们实现一个类而不让人们看到或改变代码?

时间:2016-05-03 16:10:37

标签: vb.net

如何让人们在不让他们看到或更改代码的情况下实现课程?

2 个答案:

答案 0 :(得分:0)

您应该使用public关键字来阻止类的客户端直接访问或修改字段。您可以通过protected或{{1}}关键字(用于继承)公开您希望客户端访问的方法和属性。

答案 1 :(得分:0)

实施意味着接口。您可以在.NET程序集(.dll)中定义一个接口,并将其提供给所述人员。接口中没有实现。除了属性和方法名称和类型之外,没有其他代码可以更改。

Public Interface IFoo
    Sub Bar()
End Interface

如果将此代码提供给代码文件中的人员,他们可以更改界面的定义。

还有一个抽象类,在VB中称为MustInherit。其他类可以继承从中派生(不是实现,正如你的问题所说,但你可能意味着这一点)。

Public MustInherit Class Foo
    Sub Bar()
        Console.WriteLine("Bar")
    End Sub
    MustOverride Sub Barr()
End Class

如果您在代码文件中向人们提供此功能,他们可以更改Bar()中发生的事情,或者真正做任何他们想做的事情。再次,将它放在.NET程序集中并将.dll提供给人们可以防止这种情况发生。在大多数情况下,这足以阻止人们更改您的代码。

您可以通过将项目的输出类型设置为类库来实现此目的。这将编译成.dll文件。

enter image description here

构建项目。在输出目录中将是.dll文件(如果编译成功)。

然后,您或其他人可以在新项目中添加对类库创建的.dll文件的引用。您可以声明一个实现其中定义的公共接口的类

Public Class MyIFoo
    Implements WindowsApplication1.IFoo

    Public Sub Bar() Implements WindowsApplication1.IFoo.Bar

    End Sub
End Class

和/或创建一个继承您在.dll

中创建的抽象类的类
Public Class MyFoo
    Inherits WindowsApplication1.Foo

    Public Overrides Sub Barr()

    End Sub
End Class

在您的新项目中,您无法查看或更改Interface IFoo或抽象类Foo 的代码。