“Rectangle”类没有公开我需要操作矩形的所有函数。 例如,我经常只想更改“.Bottom”值。 现有的功能都不允许我这样做,我发现自己创建了一个新的矩形来完成我需要的工作。
这让我想到一个普遍的问题: 是否可以在框架中向类中添加其他函数,然后在我的整个项目中可用?
答案 0 :(得分:7)
你可以
Rectangle
)
Rectangle
实例(具有矩形)的自定义类,并添加其他属性和方法请注意,您无法继承Rectangle
以扩展其功能,因为它不是Class
而是Structure
。
这是一个简单的扩展:
Module RectangleExtensions
<System.Runtime.CompilerServices.Extension()> _
Public Sub Move(rectangle As Rectangle, x As Int32, y As Int32)
rectangle.Location = New Point(x, y)
End Sub
End Module
您可以像Rectangle
Dim rec = New Rectangle(New Point(100, 100), New Size(50, 50))
rec.move(100, 200)
答案 1 :(得分:0)
您可以使用Extension Methods。但是有一个缺点:你不能以这种方式使用类的任何私有或受保护的成员。
另一方面,您可以尝试创建自己的类并继承该类,但有两个可能的缺点: