gpt4 book ai didi

c# - 传递一个已经启动的基类实例?

转载 作者:太空宇宙 更新时间:2023-11-03 22:46:48 24 4
gpt4 key购买 nike

我有一个类继承另一个类作为它的基类,所以喜欢。

class Player : PlayerData
{
public Player(IChannelHandlerContext context) : base()
{
}
}

当启动类 Player 时,有没有一种方法可以为类提供我已经创建的 PlayerData 实例?创建一个然后又必须重新创建它似乎是一种浪费?

最佳答案

将其作为参数传递给构造函数。

PlayerData pd = new PlayerData();
Player p = new Player(chanelHandlerContext, pd);

如果那是你的意思。如果您希望 Player 实例已经填充了来自基类实例的属性值,您最好为它使用 Automapper。

试试这个,效果很好:

static void Main(string[] args)
{
PlayerData pd = new PlayerData();
IChannelHandlerContext chanelHandlerContext = new ChannelHandlerContext();
Player p = new Player(chanelHandlerContext, pd);
Console.WriteLine(p);
}

interface IChannelHandlerContext
{

}

class ChannelHandlerContext : IChannelHandlerContext
{

}

class PlayerData
{

}

class Player : PlayerData
{
public Player(IChannelHandlerContext context, PlayerData pd) : base()
{
}
}

这种方式也可以正常工作:

class PlayerData
{
public PlayerData()
{

}

public PlayerData(PlayerData pd)
{

}
}

class Player : PlayerData
{
public Player(IChannelHandlerContext context, PlayerData pd) : base(pd)
{
}
}

关于c# - 传递一个已经启动的基类实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49463145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com