c# 对象引用对于非静态的字段、方法或属性“Control.Show()”是必需的

首先要弄清楚对象和实例的关系,比如你创建了一个窗体类Form1,这只是一个类,它是一个对象,但它在没有实例化之前,在内存中是不存在的,也就是说类Form1表示我是一个窗体图纸,但还没有实际生产出来
使用Form1 frm = new Form1()以后,创建了一个实际存在的窗体frm,也就是创建了Form1类的一个实例frm,这个时候frm.Show()就可以显示出你创建的那个Form1窗体类的实例frm,实例frm窗体的样子就是Form1类的窗体的样子,因为frm是Form1的实例。
这时如果你又创建了另一个窗体类Form2,使用Form2 frm2 = new Form2(),这样创建的窗体实例frm2就是窗体类Form2的实例,frm2.Show()显示出来的样子就是Form2窗体类的那个样子,因为frm2是Form2窗体类的实例。
 

与VB的区别

之前使用VB做过课设,再用VS中的C#可视化时就很困惑,一直出bug不知道该怎么用,这是因为两个工具中的新建窗体的含义不同,VB中点击新建一个窗体,创建的这个窗体就是一个实例,写代码不需要写new语句,只需要调用这个窗体的show方法就可以显示新创建的这个窗体实例(比如vb中点击新建了一个窗体frm,代码中只需要写frm.show();即可显示该窗体,窗体frm就是一个实例);而VS中C#的.net项目里点击新建一个窗体,创建的这个窗体是一个类,一个对象,不是一个实例,在代码里需要写new语句才是在你这个程序里创建了一个这个类的窗体实例,然后使用show方法可以显示出这个窗体实例,需要注意一切操作都是对这个实例进行操作,调用的方法都是这个实例的方法。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值