在visual studio 2010中 敲C#代码的时候看提示的问题!
System.Drawing.Bitmapbitmap=newSystem.Drawing.Bitmap(100,50);System.Drawing.Graphicsg...
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(100, 50);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap)
//下面这一行中
g.DrawString("字符串", new System.Drawing.Font("宋体", 15), System.Drawing.Brushes.Green, new System.Drawing.PointF(7, 0));
//问题是在g.DrawString()这个方法中中的参数类型,有的类需要new,有的类不需要new,这是为什么?就算是静态类,或则其他常用类怎么区分?也就是写代码的时候点出来的时候有很多提示,可以选择,怎么区分?事件,方法,属性,都好看,类就不好看了,怎么看他是一个静态类?难道写出来,转到定义再看?还是我方法有错误?
看看图片中Font类在参数中可以new 。那为什么System.Drawing.Brushes.Green这个参数不能new,怎么在点出来提示中看它是否是一个静态类?,当然有构造函数当然要new了。 展开
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap)
//下面这一行中
g.DrawString("字符串", new System.Drawing.Font("宋体", 15), System.Drawing.Brushes.Green, new System.Drawing.PointF(7, 0));
//问题是在g.DrawString()这个方法中中的参数类型,有的类需要new,有的类不需要new,这是为什么?就算是静态类,或则其他常用类怎么区分?也就是写代码的时候点出来的时候有很多提示,可以选择,怎么区分?事件,方法,属性,都好看,类就不好看了,怎么看他是一个静态类?难道写出来,转到定义再看?还是我方法有错误?
看看图片中Font类在参数中可以new 。那为什么System.Drawing.Brushes.Green这个参数不能new,怎么在点出来提示中看它是否是一个静态类?,当然有构造函数当然要new了。 展开
展开全部
其实看了半天楼主的问题,我理解是,楼主想知道,为什么有的方法,可以直接使用 类名.方法名 就能使用,而有的却要先实例化一个对象,才能调用他的方法。
我对这个问题也算是一知半解,可能解释的不全面,但是大体也算是摸着一点边了把。
静态方法,是类的成员,也就 类名.方法名 来使用
非静态方法,是对象的成员,需要 new 类名().方法名 来使用
而有的时候,我们是这样使用的 类名 l = new 类名() ,l.方法名 来使用的,他们有什么区别呢?
一个对象他有多个属性,一般来说,对象的方法,是基于他的属性的,即使是相同的类,但是实例化不同的对象,那么他的属性也不一样,如同int i=1,和int j=2一样,都是int类型,但是他们的值不一样。再例如,我们定义了一个女人类,实例化了2个女人,这2个女人他的头发长度都可能不一样对吧?给一个生孩子的方法,那么生孩子只能是实例化出来的女人对象才能使用,女人类是不可能使用的。
静态方法最大的优势,在于共享,而且不会占用太大空间。因为他不用实例化对象出来,每实例化一个对象,就要占用一块空间。比如,计算两个值的和,你可以这样写
public class Class1
{
public int Add(int i1,int i2)
{
return i1+i2;
}
}
也可以这样写
public class Class2
{
public static int Add(int i1,int i2)
{
return i1+i2;
}
}
在使用的时候,第一个写法,那么使用的时候就需要 new Class1().Add(1,2)
第二个写法,就Class2.Add(1,2)
假设在Class1里面有多个方法,那么你就需要用一个内存来保存实例化的Class1了,这样就会比写法2占用更多内存。
我对这个问题也算是一知半解,可能解释的不全面,但是大体也算是摸着一点边了把。
静态方法,是类的成员,也就 类名.方法名 来使用
非静态方法,是对象的成员,需要 new 类名().方法名 来使用
而有的时候,我们是这样使用的 类名 l = new 类名() ,l.方法名 来使用的,他们有什么区别呢?
一个对象他有多个属性,一般来说,对象的方法,是基于他的属性的,即使是相同的类,但是实例化不同的对象,那么他的属性也不一样,如同int i=1,和int j=2一样,都是int类型,但是他们的值不一样。再例如,我们定义了一个女人类,实例化了2个女人,这2个女人他的头发长度都可能不一样对吧?给一个生孩子的方法,那么生孩子只能是实例化出来的女人对象才能使用,女人类是不可能使用的。
静态方法最大的优势,在于共享,而且不会占用太大空间。因为他不用实例化对象出来,每实例化一个对象,就要占用一块空间。比如,计算两个值的和,你可以这样写
public class Class1
{
public int Add(int i1,int i2)
{
return i1+i2;
}
}
也可以这样写
public class Class2
{
public static int Add(int i1,int i2)
{
return i1+i2;
}
}
在使用的时候,第一个写法,那么使用的时候就需要 new Class1().Add(1,2)
第二个写法,就Class2.Add(1,2)
假设在Class1里面有多个方法,那么你就需要用一个内存来保存实例化的Class1了,这样就会比写法2占用更多内存。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询