1

在 ASP.NET 中,拥有 MasterPage 并使用 C#,我可以使用ContentPlaceHolder或不使用new关键字,并且此类的方法和属性的数量是相同的。

即,两者

ContentPlaceHolder ctph;

ContentPlaceHolder ctph = new ContenPlanceHolder();

具有相同的方法和属性。我不明白为什么我可以在ctph没有 new 关键字的情况下使用该变量。

4

2 回答 2

2
ContentPlaceHolder ctph;

ctph有价值default(ContentPlaceHolder)。对于引用类型,这将是null. 对于值类型,这将是一个所有字段默认初始化的有效对象。

ContentPlaceHolder是一个引用类型,所以,当你说:

具有相同的方法和属性。

嗯,是的,因为这些是由type定义的。您是通过 Intellisense 确定这一点吗?嗯……不要。尝试调用一个方法,看看会发生什么。

于 2012-11-02T21:34:47.150 回答
0

是的,但你可以在运行时做到这一点吗?

Intellisense(拼写?)是一个纯粹的编译时构造,它不知道您的第一个示例将在运行时为空并引发异常。它只是列出了基于元数据的方法和属性等。

于 2012-11-02T21:33:11.070 回答