如何在c#中调用受保护的构造函数?
发布时间:2020-12-15 06:49:06 所属栏目:百科 来源:网络整理
导读:如何调用受保护的构造函数? public class Foo{ public Foo(a lot of arguments){} protected Foo(){}}var foo=??? 这显然没有测试: public class FooMock:Foo{}var foo=new FooMock();Assert(typeof(Foo),foo.GetType()); 解决方法 基本上只能从子类中调用
如何调用受保护的构造函数?
public class Foo{ public Foo(a lot of arguments){} protected Foo(){} } var foo=??? 这显然没有测试: public class FooMock:Foo{} var foo=new FooMock(); Assert(typeof(Foo),foo.GetType()); 解决方法
基本上只能从子类中调用它.您的FooMock类将已经调用受保护的构造函数,因为它相当于:
public class FooMock : Foo { public FooMock() : base() // Call the protected base constructor { } } 但是,您的断言将失败,因为被称为foo的对象的类型是FooMock,而不是Foo. Foo形式的断言将会过去. 你不能通过直接调用受保护的构造函数来构造一个只有Foo的实例.它被保护而不是public的要点是确保它只被子类调用(或者在Foo本身的文本内). 有可能您可以在完全信任的背景下用反射来称呼它,但我会敦促您不要这样做. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – Rails:为什么“has_many …,… through
- iphone – Facebook SDK更改为在弹出视图中登录
- vue父组件向子组件传递多个数据的实例
- electron sqlite 问题
- ruby-on-rails – Sidekiq工作人员正在泄漏记忆
- 2440 nand flash和nor flash上启动
- c# – 正则表达式得到最后一次出现的模式
- Ajax处理XML,XMLHttpRequest对象的创建和访问servlet并返回
- Migrating Databases To and From ASM with
- 两个Combo box组合框控件关联xml中的数据