在不创建对象的情况下访问非静态字段

时间:2016-11-01 09:35:04

标签: c# oop nunit nsubstitute

我对c#缺乏经验,我想询问是否有办法在不创建对象的情况下访问非静态字段?

我正在对一个程序进行单元测试(所以我不能改变编写类的方式),我的目标是获得字段的初始化值。这里的问题是构造函数更改了一些字段值。

我非常感谢任何建议。

2 个答案:

答案 0 :(得分:1)

这是不可能的,因为根据定义,非静态字段属于某个对象。但是,有一种方法可以在不调用构造函数的情况下创建对象 - 请参阅this question

答案 1 :(得分:1)

如果不创建对象,则无法访问非静态字段。

实现目标的唯一方法是编写一个不进行更改的构造函数。

虽然第二个想法:如果更改是构造函数的一部分,那么检查初始值对我来说没有意义。从使用此类对象的客户端对象的角度来看,这些更改没有任何效果,因为构造函数将在调用此对象之前完全执行。