gpt4 book ai didi

c# - C#中如何控制类型转换

转载 作者:太空狗 更新时间:2023-10-29 20:18:51 26 4
gpt4 key购买 nike

有没有办法在 C# 中控制类型转换?因此,例如,如果我有两种具有基本相同细节的类型,但一种用于我的应用程序的内部工作,另一种是用于与非 .Net 应用程序通信的 DTO:

public sealed class Player
{
public Player(string name, long score)
{
Name = name;
Score = score;
ID = Guid.NewGuid();
}

public string Name { get; private set; }

public Guid ID { get; private set; }

public long Score { get; private set; }
}

public sealed class PlayerDTO
{
public PlayerDTO(string name, long score, string id)
{
Name = name;
Score = score;
ID = id;
}

public string Name { get; private set; }

// the client is not .Net and doesn't have Guid
public string ID { get; private set; }

public long Score { get; private set; }
}

现在,我每次都需要从我的 Player 实例创建一个新的 PlayerDTO 实例,我正在寻找一种更好、更简洁的方法来执行此操作。我的一个想法是向播放器类添加一个 AsPlayerDTO() 方法,但如果我可以控制类型转换过程就更好了,所以我可以改为这样做:

var playerDto = player as PlayerDTO; 

任何人都知道这是否可能以及我如何能够做到这一点?

谢谢,

最佳答案

你可以实现一个 explicit convesion operator介于两者之间。

您也可以考虑使用 AutoMapper为任务。

关于c# - C#中如何控制类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2208352/

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