【发布时间】:2011-01-13 13:56:43
【问题描述】:
有没有办法控制 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;
任何人都知道这是否可能以及我如何能够做到这一点?
谢谢,
【问题讨论】:
标签: c# .net types type-conversion