问个比较菜的问题。。。。

isee1223 2009-04-14 10:12:06
我建立了一个类库MyClass,一个WinForm应用程序,有2个button:button1和button2.
button1和button2 click后触发事件,都要用到MyClass中的一个方法F();
于是我写了以下代码:
private void button1_Click(Object sender,EventArgs e)
{
MyClass obj=new MyClass();
obj.F();
}
private void button1_Click(Object sender,EventArgs e)
{
MyClass obj=new MyClass();
obj.F();
}
这样是可以的。但我总感觉每次都要实例化MyClass是不是太笨拙了。
能不能直接obj.F()???
...全文
138 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔儿爷 2009-04-15
  • 打赏
  • 举报
回复
1.使用静态方法。
2.窗体构造方法中实例话这个类,亦可共享此对象。
duping9626 2009-04-15
  • 打赏
  • 举报
回复

MyClass obj;
private void button1_Click(Object sender,EventArgs e)
{
if(MyClass==nul) MyClass=new MyClass();
obj.F();
}
private void button1_Click(Object sender,EventArgs e)
{
if(MyClass==nul) MyClass=new MyClass();
obj.F();
}
zhangys7981 2009-04-15
  • 打赏
  • 举报
回复
MyClass obj=new MyClass();
private void button1_Click(Object sender,EventArgs e)
{
obj.F();
}
private void button2_Click(Object sender,EventArgs e)
{
obj.F();
}

可以把实例化MyClass放在方法的外面声明。
Sunshined 2009-04-14
  • 打赏
  • 举报
回复
顶~差点就忘了这知识点
gaorui929 2009-04-14
  • 打赏
  • 举报
回复
我同意五楼
levinstong 2009-04-14
  • 打赏
  • 举报
回复
还是认为写成静态的比较好点
wangpai6698 2009-04-14
  • 打赏
  • 举报
回复
五楼也行,毕竟两个button事件要放在一个类中,先在这个类中声明一个对象,两个事件就可以共享该对象。
liu4545533 2009-04-14
  • 打赏
  • 举报
回复
可以考虑F方法写为静态 这样每次调用f方法就不要建对象 也可以让你所在Form类持有一个MyClass的对象
huming_h 2009-04-14
  • 打赏
  • 举报
回复
顶。
wangpai6698 2009-04-14
  • 打赏
  • 举报
回复
2楼哥们说的有道理 我也这样认为。顶
kkun_3yue3 2009-04-14
  • 打赏
  • 举报
回复
public class MyClass {
public void F() {

}
}
public class App {
MyClass obj = new MyClass();
private void button1_Click( Object sender, EventArgs e ) {
obj.F();
}
private void button1_Click( Object sender, EventArgs e ) {
obj.F();
}
}
wjhgzx 2009-04-14
  • 打赏
  • 举报
回复
静态方法。
LemIST 2009-04-14
  • 打赏
  • 举报
回复
可以考虑把对象放到函数外面声明.
private void button1_Click(Object sender,EventArgs e)
{
obj.F();
}
private void button1_Click(Object sender,EventArgs e)
{
obj.F();
}
MyClass obj=new MyClass();
当然这也需要看你的需求了.
LemIST 2009-04-14
  • 打赏
  • 举报
回复
如果F是静态函数则可以 直接调用MyClass.F();
但如果不是静态函数,则需要实例化才能使用.
如果这个函数没有用到对象相关的变量,则完全可以写成静态的.
isee1223 2009-04-14
  • 打赏
  • 举报
回复
第2个button1_Click应该为button2_Click....

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧