昨天我认为在WPF应用程序中实现自己的触发器会很好。我创建了一个继承TriggerBase的类MyTrigger。 TriggerBase是一个公共抽象类。所以继承不是问题。但是这个类里面的构造函数是内部标记的。编译器抛出一个错误,因为它不是有效的构造函数。为什么有人创建一个公共类,但将构造函数标记为内部?内部构造函数
Q
内部构造函数
5
A
回答
9
如果您希望该类可见,但只允许它在您自己的程序集中进行子类化。这些子类本身可能有公共构造函数 - 或者它们可能会被工厂访问。
我不能评论这是否是一个很好的WPF中的TriggerBase设计决策,但在某些情况下它至少是合理的。
5
我能想到的一个原因是新实例的实际创建将由同一个程序集中的另一个公共类来处理。这会迫使你通过这个其他类创建实例 - 可能是某种工厂模式实现。
2
它是公开的,因为它用作带有WPF(触发器,MultiTrigger,EventTrigger,DataTrigger等)的触发器的基类。它不是公开的,那么你将无法将这些类标记为公共。
构造函数是内部的,因为它们不打算让你自己使用它。我想你应该从上面提到的其中一个类派生出来。
相关问题
- 1. Dart内部构造函数
- 2. AS3函数内部构造函数与函数外部构造函数
- 3. 函数内部的Javascript构造函数
- 4. 内部类的构造函数调用
- 5. EJB内部查找:构造函数,@PostConstruct
- 6. 可变内部的Luse构造函数
- 7. 如何在内部构造函数
- 8. React组件内部的构造函数
- 9. 对象内部的构造函数?
- 10. 尝试,抓住内部构造函数,调用基构造器
- 11. 内部构造
- 12. 部分类构造函数
- 13. 如何在构造函数类中调用内部函数?
- 14. Java:在构造函数内部或外部初始化对象?
- 15. 调用“内部外部的”构造函数使用反射
- 16. 构造函数内部或外部的成员初始化
- 17. 当我应该初始化构造函数内部的类字段和外部构造函数?
- 18. 使用函数构造函数创建函数的内部引用
- 19. 参数类型的内部构造函数
- 20. 朱利亚参数构造函数 - 外部构造函数的问题
- 21. 构造函数中的调用基构造函数和其他构造函数
- 22. 外部调用拷贝构造函数和析构函数
- 23. 堆 - 构造函数和析构函数,内存分配
- 24. 默认构造函数和析构函数是否内联?
- 25. Java:如何调用子类构造函数内的超类构造函数?
- 26. 如何在派生的内部类中编写构造函数?
- 27. 温莎城堡:注册类与内部构造函数?
- 28. C# - 使用内部构造函数反序列化一个类
- 29. 在运行时使用内部构造函数实例化类
- 30. DataRow和受保护的内部构造函数