如何在second.cs文件中访问函数?
例如,从first_main中的第二个文件调用someFunction。
我试过了:
first_main.cs:
long result= (long) ceil(duration);
second.cs:
using second;
namespace first_main
{
public partial class MainWindow : MetroWindow, funkcijos
{
public MainWindow()
{
someFuction();
}
}
}
答案 0 :(得分:1)
MetroWindow必须是一个界面,否则你无法继承MetroWindow,funkcijos。 .net
不支持多重继承using second;
namespace first_main
{
public partial class MainWindow : MetroWindow
{
public MainWindow()
{
var second = new funkcijos();
funkcijos.someFuction();
}
}
}
namespace second
{
public class funkcijos
{
public funkcijos()
{
}
public void someFuction()
{
MessageBox.Show("I use function in MainWindow class, from function class");
}
}
}
答案 1 :(得分:-1)
在您的原始问题中,您似乎正在尝试跨两个不同的命名空间实现部分类,或者实现多重继承,c#中都不可能这样做。
为实现相同功能,您可以创建一个扩展方法,将someFuction
[原文如此]与MainWindow
类关联起来:
<强> first_main.cs:强>
using second;
namespace first_main
{
public partial class MainWindow : MetroWindow
{
MainWindow()
{
this.someFuction();
}
}
}
<强> second.cs:强>
using first_main;
namespace second
{
public static class MainWindowExtensions
{
public static void someFuction(this MainWindow instance)
{
...
}
}
}
此外,利用这种方法,MainWindow
的实例似乎可以获得存储在extensions方法类中的方法,就好像它们是公共实例成员一样:
var mainWindow = new MainWindow();
mainWindow.someFuction();
使用接口方法,您无法实现代码的可重用性。您所拥有的只是合同,但您仍然需要在使用该接口的任何地方实现这些方法。使用此扩展方法方法解决问题的好处是,您可以实现&#34; 一次编写,随处使用&#34;。