c#twincat将参数传递给类构造函数

时间:2016-11-15 10:56:23

标签: c# constructor arguments cnc 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 个答案:

答案 0 :(得分:0)

好的,这就像我现在做的那样。

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); }
}