十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
以class2为例,如果你只需要一个class2实例,那么把它在class1成员中声明为共享成员即可。
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的剑川网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
Shared c2 As New Class2()
然后调用它的函数,
c2.func()
如果class2的这个函数不依赖于class2实例,那么直接将这个函数用Shared声明,
Public Shared Function func() As xxx
'xxxxx
End Function
然后在class1中引入,
Imports class2
直接调用即可。
func()
我想第二种更符合你的情况。
因为VB.NET的开发环境已经由6.0环境变成了CLR公库,所以有很多东西就迁移了;例如Public Private;这就是很简单的共享和半隐蔽;
简单的;也就是说
一个Public方法/变量是可以在Class之间互相调用的。
例如:
public class class1
Public Sub A()
end sub
end class
然后在另一个Class中:
class1.A()
即可调用;
但是如果是Private sub a.就有很多时候是无法调用的,但是Class内部可以互相共享这个方法。
列个表---简单的来说
最开放的:Public--跨类调用。
第二的: Friend/Shared--不可更改的跨类调用
比较封闭:Private--类中调用
更加封闭:Protected--类中不能调用,只能自己用。
再往后可能就是Override型,要重写才能访问。
废话这么多了--说你的问题;
对非共享成员的引用要求对象引用
很明确的:你侵犯了主权..人家本来不让你访问,你偏偏从外部调用;那么你有两个方法,第一;把你要调用东西改为Public ...
第二:你可以把这个Class实例化,变为自己的元素;能够看到内部变量/方法。
比如,class1里又一个Private sub a()
那么,你在Class2里调用:
dim x1 as new class1
x1.a()
即可
不知是否是这个意思。
在OpTree中,要调用GetInfo的ReadInfo(),可以新建一个GetInfo类的实例:
Dim GI As New GetInfo
GI.ReadInfo()
与使用System.Windows.Forms命名空间中的控件的用法没有区别。
首先添加引用。
其次导入(Imports)命名空间。
接着就可以使用了:
1、要使用用户控件的实例成员,就先创建一个用户控件的实例,再通过实例名.实例成员名访问;
2、要使用用户控件的共享(Shared)成员,通过用户控件类名.共享成员名访问。
如果你问的是怎样创建自己的用户控件类:
1、继承类System.Windows.Forms.UserControl;
2、继承任何一个已经存在的控件类(只要这个控件类不是NotInheritable的就行)。