访问属性而不创建新的空实例

本文关键字:实例 创建 属性 访问 | 更新日期: 2023-09-27 18:13:56

我有一个类p作为命名空间D的一部分,具有几个字段和相关属性

namespace Driver
[Export(typeof (P))]
public class Pilot : Send
{
    private bool _b1;
    ...
public bool B1
{
get { return _b1; }
private set
    {
        if (_b1 != value)
            {
                _b1 = value;
                NotifyOfPropertyChange(() => B1);
            }
         }
     }

然后在相同的命名空间中的另一个类带有一些方法

namespace Driver
    public class PilotEng
    {
        public void Statistics()
            {
            ....
            }
        public void Running()
            {
            ....
            }

在类PE方法中访问和使用类p参数的最佳方式是什么?

访问属性而不创建新的空实例

PilotEng访问Pilot信息的方式有很多。

PilotPilotEng结构中的通过:

public class PilotEng
{
    private Pilot myPilot;
    public PilotEng(Pilot pilot)
    {
        myPilot = pilot;
    }
    public void Statistics()
        {
            var whatever = myPilot.B1;
        ....
        }
    public void Running()
        {
        ....
        }
}

其他地方…

public void SomeMethod()
{
    Pilot p = new Pilot();
    PilotEng pe = new PilotEng(p);
    pe.Statistics();
}

更新你的方法签名,以接受一个要使用的pilot实例:

public class PilotEng
{
    public void Statistics(Pilot pilot)
        {
            var whatever = pilot.B1;
        ....
        }
    public void Running()
        {
        ....
        }
}

其他地方…

public void SomeMethod()
{
    Pilot p = new Pilot();
    PilotEng pe = new PilotEng();
    pe.Statistics(p);
}

都是有效的,一个可能比另一个更有效,还有其他几种方法可以实现这一点。这完全取决于你想要做什么