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

本文关键字:构造函数 参数传递 | 更新日期: 2023-09-27 18:18:03

我想知道什么是最好的方法。

如果需要将类传递给类构造函数,为什么要在类中使用变量呢?

的例子:

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,我如何才能正确地做到这一点?

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

就像我现在做的那样。

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