Я упростил, что у меня есть в этом:Дайте метод между 2 классов C#
class A : SomeClassICantAccess
{
IVIClass ivi = new IVIClass();
public A()
{
string address = "1111";
ivi.Initialize(address);
}
public void SendCommand(string cmd)
{
ivi.Send(cmd);
}
}
class B : SomeClassICantAccess
{
IVIClass ivi = new IVIClass();
public B()
{
string address = "2222";
ivi.Initialize(address);
}
public void SendCommand(string cmd)
{
ivi.Send(cmd);
}
}
class Main()
{
//I want my main to keep this format
A a = new A();
B b = new B();
a.SendCommand("commands");
b.SendCommand("commands");
}
Как вы можете видеть, класс A
и B
имеют одинаковый SendCommand()
метод, но так как их ivi
s инициализируются с другим адресом , команды отправляются на разные инструменты.
Похоже, что один и тот же метод скопирован в два разных класса. Но я действительно хочу, чтобы мой Main()
выглядел так, как сейчас, так что будет ясно, ссылается ли SendCommand()
на инструмент A или на прибор B.
Как слить их?
Вам действительно нужны два класса? Разве у вас не было одного класса с двумя заводскими методами для создания экземпляров с разными исходными данными? Если нет, вам может понадобиться абстрактный базовый класс, из которого оба получаются. –
@ Jon Skeet Объединить два класса и создать два разных '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Но тогда мне все равно нужно иметь 2 набора методов SendCommand() - один содержит 'ivi1.Send()', другой содержит 'ivi2.Send()' –
Нет, у вас будет один класс, но вы бы создали разные * экземпляры * класса. В основном такой же ответ, как не повезло. –