C#的this问题

this是指当前类的实例吗??那么publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}pr... this是指当前类的实例吗??

那么
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form1 f = new Form1();
Graphics ghs = this.CreateGraphics();//换成 f 就绘制不出来了
Brush mybs = new SolidBrush(Color.Red);
Rectangle rt = new Rectangle(10, 10, 100, 100);
ghs.FillRectangle(mybs, rt);
}
}
那行注释 为什么。。
展开
 我来答
玩转数据处理
推荐于2016-05-30 · 数据处理,Python,dotnet
玩转数据处理
采纳数:1613 获赞数:3794

向TA提问 私信TA
展开全部
this 是指当前的类没错,但是 Form1 f = new Form1() 中的 f 不是你当前的实例了,所以你换成f就不可能画出来了
Form1 f = new Form1();
Graphics ghs = f.CreateGraphics();//换成 f 就绘制不出来了
Brush mybs = new SolidBrush(Color.Red);
Rectangle rt = new Rectangle(10, 10, 100, 100);
ghs.FillRectangle(mybs, rt);
f.Show();// 加这一句就会显示你new出来的窗口,且会有你画的东西在上面的
追问
大意我明白了,加上之后也出现个窗口,再点还有,只是上面没有任何东西。。
追答
那是当然了,因为当前窗口和你new出来的窗口是不一样的,虽然他们是同一个类的实例。你new出来的窗口未添加任何控件当然是也是什么也没有的
郑凯zkm
2015-02-09 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:67.7万
展开全部
this的意思是在当前窗体上,而换成f的话就不是在当前窗体,而是你新建的一个窗体,因为你执行了”new Form1()“,虽然两个窗体是构造是一模一样但是内存地址还是不同的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kcxnvbdbd
2015-02-09 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:619万
展开全部
是指当前实例。
换成f就画到f上去了,而不是画到当前实例
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Alexhuangzl
2015-02-09 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:70万
展开全部
是的,看一下C#、C++等等面向对象的基础书籍,里面都有的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式