注册 登录
编程论坛 ASP.NET技术论坛

[求助]关于一个类中调用另一个类的方法

lwmmaple 发布于 2007-06-14 22:32, 2435 次点击

有两个类,一个是在a.cs文件中,另一个是在b.cs文件中.
那么在b中如何调用a中的方法呢?

28 回复
#2
铲铲2007-06-15 00:21
a obja = new a();

obja就是一个对a类所实例化对象的引用,a类被实例化后,里面的方法,变量等就可以使用了

如obja.MethodA()。。。
obja.abc = 123;
等等
#3
lwmmaple2007-06-15 10:38
是在VS2005中的..试过这样子不行的.
#4
yunj11052007-06-15 11:10
是的 我也遇到过这样的问题至今没明白怎么回事
#5
bygg2007-06-15 12:29
错误提示是什么?
#6
yunj11052007-06-15 12:37
未将对象引用设置到对象的实例
#7
cyyu_ryh2007-06-15 12:40
那就是你的类代码有问题
#8
随风逐流2007-06-15 14:52

是不是权限的问题?你设置public了没?

#9
yunj11052007-06-15 14:55
设置了
#10
随风逐流2007-06-15 14:57

可否将部分代码发出来?包括你调用的那句

#11
川流不息2007-06-15 15:00

不是,是你要把他引用到你的要調用的那個類當中。

#12
yunj11052007-06-15 15:01
用命名空间吗?
#13
川流不息2007-06-15 15:04
是吧。不過,我有的時候竟然也不行,就是當你把別的地方的一個類放到項目中,會找不到。我會重新建一個類,然後把要引用的那個類的內容全部復制到這個新類中。就可以了。
#14
随风逐流2007-06-15 15:05
两个类在不在同一命名空间里面?
貌似好象是USING 某个空间
#15
yunj11052007-06-15 15:05
恩 我的是用了命名空间也不行
我就把那个类删了
#16
川流不息2007-06-15 15:05
可是,有的時候,你using 後面的命名空間你根本找不到那個。
#17
随风逐流2007-06-15 15:07
。。。。版主是北大青鸟的啊
那里我上了一学期就没上了
#18
yunj11052007-06-15 15:12
大家有没有例子啊?
#19
川流不息2007-06-15 15:19
這種事哪有什麼例子,像我要建一個類文件,會提示建在App_Code文件夾中。
#20
CrazyWeed09072007-06-15 16:17
以下是引用yunj1105在2007-6-15 15:05:39的发言:
恩 我的是用了命名空间也不行
我就把那个类删了

你得引用那个类

#21
lwmmaple2007-06-15 22:56

弄了很久还是不行..看来只能另想办法了.

#22
haoliaos2007-06-16 09:41
回复:(lwmmaple)[求助]关于一个类中调用另一个类的...
把两类生成dll....然后在要用的类里。。引用dll

就可以了
#23
铲铲2007-06-17 00:48
这和VS2003 VS2005没有关系的,他们只是个开发环境而已,从C++开始到现在,这种new关键字创建堆对象的方法就一直延续到现在。

根据你回复的信息,可以建议你从这些方面去寻找解决:

1、如果要实例化的类在别人开发的类库中,以dll形式存在,你需要先将dll添加引用进来。
2、添加了引用,就可以在你的代码中实例化这些类。可以用带命名空间的全名来表示该类,如果觉得那样写代码又长又麻烦,可以在开头用using关键字将命名空间引进来。无论是哪种,都是可以的。
3、不管在VS2003还是VS2005中,如果你在写这些语句时,代码提示不会跳出,那么就要好好检查一下是不是上面的问题,一般来说,如果上面这些都是正确的话,代码提示会跳出来的。代码提示可以帮助你预期到可能的错误。
4、实例化对象的语句要放在“方法”或者“属性访问器”中,也可以使用便捷的方法,在声明一个类变量时就实例化,这和声明一个类变量,然后再构造函数中实例化道理是一样的。
5、如果出现“未将引用设置到实例”,那么好好检查一下,在你使用这个对象之前,实例化的语句有没有执行?在方法体内,是过程化的,仍要讲究执行顺序。如果将实例化的语句放在其他位置,那么要保证在你使用该对象时先执行它。
#24
liyueyu2007-06-17 09:16
这两个类在同一个命名空间里吗?如果不在同一个命名空间中,你在B类所在的项目中添加了A所在命名空间的引用了吗?要把A的DLL文件添加到B的引用当中才能导入A的命名空间中的类。
#25
夜_狼2007-06-17 16:22
我一直用在命名空间中定义一个类怎么没遇到类似情况
#26
铲铲2007-06-17 18:17
请注意区分命名空间和程序集的概念,用一个不太恰当的比喻,命名空间的结构就好像文件系统的树状结构,它的出现可以使你以树状方式来区分类和功能划分。而程序集像一个磁盘分区一样。程序集首先要被引用,否则根本找不到你所需要的类。

程序集引用以后,你就可以用两种写法来实例化别人所书写的类,第一种就是从它的根命名空间开始一直书写到类名(就像绝对路径一样,用“.”隔开命名空间层次),这叫一个类的完全限定名引用。
但是这样可能看起来太冗长了,写起来也麻烦,那你还可以用using关键字将一个命名空间说明以后,就可以用类似于相对路径的写法那样,看起来就简单多了。

无论上面怎么写,程序集都要引用近来。程序集的外在表现形式是dll、exe等文件
#27
beniao2007-06-17 22:02
可以实现!
#28
dsfsddddd2007-06-18 10:34

FrameCountry是采用.Net的开发平台,专注于数据库访问层功能的架构系统,为用户提供便捷、规范、强大的功能,提升开发效率。

FrameCountry特点
1. 便捷开发:封装、整合数据库操作方式,让开发人员摆脱数据库的约束;
2. 规范开发:依据多层设计原理,明晰人员分工,提高程序可读性;
3. 记录运行情况:开发人员依据记录了解系统详情,方便调试排错;
4. 多样数据库连接:实现多种数据库连接方式,对开发人员透明化数据库连接,使其只关注上层程序,同时降低数据库转换、升级工作量,目前实现Access2000、SQLServer2000两种数据库,日后逐步增加关系型数据库连接配置;
5. 整合有效函数:对开发中其它的有用的、常用的函数进行整理,简单调用实现;

访问http://blog.csdn.net/lizheng82

#29
caiyakang2007-06-18 10:39
如果不同项目就要先加对DLL引用.
然后使用using 命名空间

如果在同一项目不同命名空间,就直接用using 命名空间

如果在不行,估计代码有问题

实在没什么办法的话,就把电脑砸了!
1