1
43
由于某种原因,默认构造函数是私有的。开发人员并不是为了好玩而把它变成私人的。 但是,如果您仍然想使用默认的构造函数,您可以使用反射来获得它。
编辑 我看到你对测试的评论了。从不测试受保护的或私有的方法/属性。如果您无法通过公共API测试这些方法/属性,那么您可能做了一些错误的事情。要么删除它们,要么重构类。 编辑2 忘记绑定标志。 |
2
2
有几种方法可以解决这个问题: 一 :将构造函数公开。如果您需要从类外部访问它,为什么它是私有的(可能您只想访问私有构造函数进行测试,在这种情况下这是一个有效的问题)。 二 :使构造函数受保护,然后通过派生类访问它:
三 :使用反射(如jgauffin所示)。 |
3
2
除了@jgauffin的答案外,它还告诉如何通过反射调用私有构造函数: 是否可以更改私有构造函数的修饰符?
似乎您正在代码中实现工厂模式。因此,修饰符应该是
扩展方法
打电话
|
4
0
您可以通过反射来实例化该类型的实例。 |
5
0
Bobby的方法仍然属于另一个类,叫做Fred。这就是为什么您不能访问Bob类的prive构造函数。附加方法不可能实现您正在尝试的操作。即使它们可以附加到另一个类上,它们仍然在该类之外声明,并遵循通常的范围/访问规则。 |
6
0
如果您使用的是dotnet core,那么您可以在不需要处理任何反射的情况下执行以下操作:
|
7
-1
|
Dwayne B · 使用Caliburn Micro键绑定WPF 6 年前 |
katiex7 · 在JSF中处理表单时,它是否都发生在一个线程中? 7 年前 |
user8716414 · Java:受保护,可见[重复] 7 年前 |
masterpoltergeist · 将特定样式应用于所有子元素 7 年前 |
Webster · 切换对象的可见性或显示 7 年前 |
nuuse · 根据第二个组合框的选择隐藏组合框项,反之亦然 7 年前 |