PrintDocument对象 - 奇怪的属性?

时间:2013-11-24 10:32:12

标签: properties printdocument

我开始使用PrintDocument中的WinForms对象进行打印。

我注意到有关该物体的一些非常奇怪的事情。 其中有一个名为DefaultPageSettings的属性,在该属性中,它们是一个名为PrinterSettings的属性,依此类推。 我可以写:

PrintDocumet.DefaultPageSettings.PrinterSettings.DefaultPageSettings.PrinterSettings.DefaultPageSettings.PrinterSettings

并永远继续,而不会进入NULL对象。 有人可以解释一下这是为什么吗?

1 个答案:

答案 0 :(得分:1)

这是非常简单的交叉引用,你可以通过让两个相互引用的对象轻松构建它。这不一定是个好主意,但有时候设计理念(比如重新设计一个旧应用程序以便在参考你正在构建的新应用程序时表现得更合理可能会花费太多)会让你进入一个你只是坚持下去的情况它

public class Foo {
  private Bar bar;

  public Foo(Bar bar) {
    this.bar = bar;
  }

  public Bar getBar() {
    return bar;
  }
}

public class Bar {
  private Foo foo;

  public void setFoo(Foo foo) {
    this.foo = foo;
  }

  public void getFoo() {
    return foo;
  }
}

public class FooBarTest {
  public static void main (String[] args) {
    Foo foo = new Foo();
    Bar bar = new Bar(foo);
    foo.setBar(bar);

    foo.getBar().getFoo().getBar().getFoo()...
  }
}