C# twincat передает аргумент в конструктор класса

Интересно, как лучше?

Если мне нужно передать класс конструктору класса, зачем мне использовать переменную внутри моего класса.

Пример:

using Beckhoff.App.Ads.Core.Plc;

Class test()
{
    private static IBAAdsServer AdsServer;
    private static IBAAdsCncClient _cncClient;

    public test(IBAAdsServer _adsServer)   //constructor
    {
        try
        {
            AdsServer = _adsServer;
            _cncClient = AdsServer.GetAdsClient<IBAAdsCncClient>("CNC");
            _cncClient.Synchronize = true;
        }
        catch (Exception Except)
        { MessageBox.Show("Error ! " + Except.Message); }
    }

Почему я не могу сделать:

using Beckhoff.App.Ads.Core.Plc;

Class test()
{
    private static IBAAdsCncClient _cncClient;

    public test(IBAAdsServer _adsServer)   //constructor
    {
        try
        {
            _cncClient = _adsServer.GetAdsClient<IBAAdsCncClient>("CNC");
            _cncClient.Synchronize = true;
        }
        catch (Exception Except)
        { MessageBox.Show("Error ! " + Except.Message); }
    }

Я хотел бы использовать _adsServer во многих классах нет связи, как я могу сделать это правильно?

Спасибо за помощь.

1 ответ

Решение

Хорошо, вот как я делаю сейчас.

using Beckhoff.App.Ads.Core.Plc;

Class test()
{
private static IBAAdsServer AdsServer;
private static IBAAdsCncClient _cncClient;

public test(IBAAdsServer _adsServer)                  //constructor
{
    try
    {
        AdsServer = _adsServer;
        _cncClient = AdsServer.GetAdsClient<IBAAdsCncClient>("CNC");
        _cncClient.Synchronize = true;
        Classtocall newClass = ClasstoCall(_cncClient);//Passing the argument directly
}
catch (Exception Except)
    { MessageBox.Show("Error ! " + Except.Message); }
}
Другие вопросы по тегам