我看到了这段代码:
this.CreateGraphics().DrawRectangle( Pens.Black, new Rectangle( 0, 0, 200, 100 ) );
CreateGraphics()
是一种方法,但它的作用类似于具有静态空洞的类。如何在我的代码中创建它?我不知道这种技术怎么能被称为...
我看到了这段代码:
this.CreateGraphics().DrawRectangle( Pens.Black, new Rectangle( 0, 0, 200, 100 ) );
CreateGraphics()
是一种方法,但它的作用类似于具有静态空洞的类。如何在我的代码中创建它?我不知道这种技术怎么能被称为...
这称为工厂方法(它是设计模式之一)。基本上,您创建一个方法,该方法将返回类的新实例,例如:
public class Graphics
{
public static Graphics CreateGraphics()
{
return new Graphics();
}
// ... other methods etc ...
public bool OtherMethod()
{
return false;
}
}
// then you can do Graphics.CreateGraphics().OtherMethod();
更新
您可以在其他地方使用这种设计模式,您需要做的就是创建一个方法,该方法将返回类(CreateGraphics
方法)的新实例:
public class MyClass
{
public static Graphics CreateGraphics()
{
return new Graphics();
}
// ... other methods etc ...
public void MyOtherMethod()
{
this.CreateGraphics().Something();
}
}
CreateGraphics() 正在返回 Graphics 类的一个实例。
我怀疑你在谈论 Control.CreateGraphics() 方法,
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.creategraphics.aspx
任何返回此类对象实例的方法都可以以这种方式使用。