In Ihrer ursprünglichen Frage, es scheint, dass Sie versuchen, eine Teil-Klasse über zwei verschiedene Namensräume zu implementieren, oder Mehrfachvererbung zu erreichen, von denen keine nicht möglich in C# ist.
Was könnten Sie die gleiche Funktionalität zu erreichen tun, ist eine Erweiterungsmethode die someFuction
[sic] zum MainWindow
Klasse zuordnet erstellen:
first_main.cs:
using second;
namespace first_main
{
public partial class MainWindow : MetroWindow
{
MainWindow()
{
this.someFuction();
}
}
}
zweite .cs:
using first_main;
namespace second
{
public static class MainWindowExtensions
{
public static void someFuction(this MainWindow instance)
{
...
}
}
}
Zusätzlich diesen Ansatz verwendet, Instanzen von MainWindow
erscheinen die Methoden in der Extension-Methode Klasse gespeichert zu gewinnen, als ob sie öffentliche Instanz Mitglieder waren:
var mainWindow = new MainWindow();
mainWindow.someFuction();
die Schnittstelle Ansatz, erreichen Sie keine Wiederverwendbarkeit von Code. Alles, was Sie haben, ist der Vertrag, aber Sie sind immer noch verpflichtet, diese Methoden überall dort, wo die Schnittstelle verwendet wird, zu implementieren. Der Vorteil zur Lösung Ihres Problems mit dieser Erweiterungsmethode ist, dass Sie erreichen "schreiben Sie einmal, verwenden Sie überall".
Funktion innerhalb Konstruktor? – JerryGoyal
Sie müssen irgendwie einen Verweis auf 'class MainWindow' an' class funkcijos' übergeben. Sie könnten es zum Beispiel als Parameter an 'someFunction()' übergeben. Oder übergeben Sie es dem Konstruktor 'class funkcijos' und speichern Sie es in einem Klassenfeld. –
nicht gültig C# class –