当前位置:  开发笔记 > 编程语言 > 正文

内部构造函数

如何解决《内部构造函数》经验,为你挑选了2个好方法。

昨天我认为在WPF应用程序中实现我自己的Trigger会很不错.我创建了一个继承TriggerBase的类MyTrigger.TriggerBase是一个公共抽象类.所以继承不是问题.但是这个类中的构造函数标记为内部.编译器抛出错误,因为它不是有效的构造函数.为什么有人创建公共类但将构造函数标记为内部?



1> Jon Skeet..:

如果您希望该类可见,但只允许它在您自己的程序集中进行子类化.子类本身可以有公共构造 - 或者它们可以通过工厂访问.

我无法评论这是否是WPF中TriggerBase的一个好的设计决定,但在某些情况下它至少是合理的.



2> Joseph Ferri..:

我能想到的一个原因是新实例的实际创建将由同一程序集中的另一个公共类处理.这会强制您通过另一个类创建实例 - 可能是某种工厂模式实现.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有