c# 实例化对象的问题 应该很简单的

来源:百度知道 编辑:UC知道 时间:2024/05/15 11:46:35
private void libMode_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
。。。。


1, 可以不用NEW关键字实例化对象吗?
2, e 和 e.Graphics怎么理解?
3, 为啥
private void libMode_Click(object sender, EventArgs e)
{
Graphics g = e.Graphics;
。。。。

就无法运行了?

谢谢~
感谢所有人

1、可以不用NEW关键字实例化对象吗?
答:明确的告诉你,不可以,Graphics类是不可以new 的。
2、e 和 e.Graphics怎么理解?
答:e是方法中的参数。是PaintEventArgs类(为 Paint 事件提供数据。)
e.Graphics是Graphics类(一个 GDI+ 绘图图面),在这里是e中的一个属性。
3、为啥……?
答:你注意看参数类型,Paint事件是的e是PaintEventArgs类,而Click事件是的e是EventArgs类,是不一样的,EventArgs类没有Graphics属性。
要是想在Click事件中获取libMode控件的Graphics,可以按如下取得:
private void libMode_Click(object sender, EventArgs e)
{
Graphics g = Graphics.FromHwnd(libMode.Handle);
。。。。
}

可以,可以调用静态函数实例化。PaintEventArgs e,e.Graphics应该是实力化Graphics,PaintEventArgs 中的Graphics函数就可以实例化Graphics。j2me中有很多这样的实例化方法。

Graphics g = e.Graphics;
这不是实例化对象,e.Graphics是e的一个属性。只是把已经存在的一个对象赋给变量g。
libMode_Paint方法中,e的类型是PaintEventArgs,所以包含Graphics属性。
而libMode_Click方法中,e的类型是EventArgs不包含Graphics属性。所以不能用e.Graphics。

有的时候你看不到具体的new方法实例化对象并不是不用new,而是在你调用的方法内部调用了。最最典型的比如设计模式中,工厂模式的Create方法。你以后如果学到了就会明白了。

1,实例化对象肯定需要new,有些好像是通过调用方法来实现的,其实也是在方法里面应用了new,
2,e是时间远的包含体,他包含着