C#中static方法问题

tesling 2006-07-31 10:55:57
我想把windows form1中的一个方法f1()提供给windows form2使用.由于windows form1是主窗口,不用实例化,我就把f1()写成

statci public void f1()
{
f2();//f2()是windows form1中非静态的方法
}

的形式,但是我在f1中使用windows form1中的非static属性和方法时,提示"an object reference is required for the nonstatic field、method、or property '工程名.form1.f2()'。怎么解决,是不是form1不实例化就不行?请高人指点,多谢!
...全文
296 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
laopokanhai 2006-07-31
  • 打赏
  • 举报
回复
我没有看你的问题,但是我可以和你说STATIC的作用,他是静态的,静态属性,静态方法,都可以用他,他的解释是,不依赖与类的实例而存在,也就是说,你不能申明一个类的实例。来调用他。也可以理解他是类的方法,或者类的属性
diandian82 2006-07-31
  • 打赏
  • 举报
回复
static定义的成员都是属于整个类的,没有this指针,所以也就不用New出来的对象调。
可以直接使用类型.成员的方式调用。
tesling 2006-07-31
  • 打赏
  • 举报
回复
To Samen168
多谢,问题解决了,能不能麻烦您解释一下!
tesling 2006-07-31
  • 打赏
  • 举报
回复
多谢,问题解决了,能不能麻烦您解释一下!
CmUpDate 2006-07-31
  • 打赏
  • 举报
回复
不好意思,没有看清楚题目
CmUpDate 2006-07-31
  • 打赏
  • 举报
回复
public static void f1()
Samen168 2006-07-31
  • 打赏
  • 举报
回复
写错了点
private static form1 _instance;
public form1()
{
_instance = this;
}

public static form1 Instance
{
get
{
return _instance;
}
}
Samen168 2006-07-31
  • 打赏
  • 举报
回复
form1里
private form1 _instance;
public form1()
{
_instance = this;
}

public form1 Instance
{
get
{
return _instance;
}
}

Form2里
form1.Instance.f2();
tesling 2006-07-31
  • 打赏
  • 举报
回复
那么请问应该怎么样在不实例化form1的情况下,使form2能够调用from1的方法?
flyzq 2006-07-31
  • 打赏
  • 举报
回复
肯定不行

110,535

社区成员

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

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

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