我一直在阅读关于WPF的在线教程,在那里我读了一行“WPF中的所有类都有无参数的构造函数,并过度使用属性,这样做是为了使它完全适合XAML这样的XML语言。”
我通过创建一个带有一个参数化构造函数的自定义类来检查上面的话,并遇到了错误“类型'custom_class_name‘不能用作对象元素,因为它不是公共的,或者没有定义公共的无参数构造函数或类型转换器。”
我只想知道一个具体的详细原因,无参数构造函数是如何帮助实现这一点的。
发布于 2013-09-17 11:48:05
WPF框架使用参数少的构造函数来实例化我们在构建可视化树时在XAML页面中定义的所有对象。如果它试图实例化一个没有公共参数的构造函数的对象,那么您将抛出这个Exception。如果要向对象添加无参数构造函数,然后再试一次,那么这个Exception就会消失。
还请查看MSDN上的类型{0}不能用作对象元素页面。
此外,我认为在.NET中没有任何构造函数的类在默认情况下会自动提供“不可见的”参数--无构造函数。然而,如果我们添加一个参数化的构造函数,那么就不会自动提供没有参数的构造函数。
https://stackoverflow.com/questions/18848962
复制相似问题