在C#中,我有一个使用函数做一些工作的类。问题是:这个函数需要一个具有特定结构的类,以便它返回正确的结果(对于"特定的结构"你可以想象使用该函数所依赖的一组特定枚举的类)同样)。
我的问题是:从未来对使用类结构的更改中尝试和保护我的函数的最佳方法是什么?或者至少拥有它,以便如果另一个程序员改变了班级'结构我的函数将通知他需要对函数本身进行更改才能使一切正常工作。
我希望一切都清楚。 提前谢谢!
答案 0 :(得分:1)
如果你不能/不想使用它们,那么处理这个问题的方法很简单:
在Main的第一行,调用方法CheckMyClass()
void CheckMyClass()
{
#if DEBUG
bool theClassIsOK = ...//check your class is still how it should be.
if (! theClassIsOK)
throw new ApplicationException ("something changed TheClass in a wrong way, DiG knows what's wrong with this");
#endif
}
我知道并不优雅。
将“DiG know”替换为对你的同事更有用的东西(或同事,因为他们会在你找到新工作后的第二天修改课程......)
答案 1 :(得分:0)
确保函数获取所需依赖项的最佳方法是将它们作为参数显式传递。所以不要求将类的实例作为参数,而是要求每个枚举或其他类成员。
您还可以考虑使该类实现具有所有必需属性的接口。如果将接口与函数一起分发在程序集中,则人们将无法更改它。
最后,如果断言不正确,你可以将断言放入函数中并返回异常。