如何让人们在不让他们看到或更改代码的情况下实现课程?
答案 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文件。
构建项目。在输出目录中将是.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 的代码。