我最近改变了我的项目,包括一个更好的集成接口.我真的不知道如何从我的类继承我的接口的一个表单(用于更新表单控件)访问一个方法.下面是一些应该有助于清晰的代码片段.
//this is the double click event from where i have to call SelectDeal method
private void TodayEventsGridView_DoubleClick(object sender, EventArgs e)
{
DealModule _dealModule = new DealModule();
// i dont want to create an obect of class DealModule()
try
{
this.Cursor = Cursors.WaitCursor;
_dealModule.SelectDeal(DealKey);
}
catch (Exception ex)
{
MessageBox.Show("Warning: " + this.ToString() + " " + System.Reflection.MethodInfo.GetCurrentMethod().Name + "\n" + ex.Message, ex.GetType().ToString());
}
finally
{
this.Cursor = Cursors.Default;
}
}
Run Code Online (Sandbox Code Playgroud)
根据定义,这是不可能的.只有拥有要使用的类的实例时,才能使用实例(非静态)方法.您需要使用类的实例,或者将方法声明为static.
正如帕特里克在下面所说,你试图这样做的事实可能表明存在设计缺陷,但很难建议如何在没有更多背景的情况下改进它.
我想补充一点,在一般情况下,从设计的角度来看,最好是调用类的实例(或者更好的是接口)而不是静态方法.这提高了可测试性并帮助您实现松耦合,使您的软件更易于维护.为什么你认为在你的情况下调用静态方法更合适?