the*_*onk 7 .net c# types type-conversion
有没有办法控制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; }
}
Run Code Online (Sandbox Code Playgroud)
现在,我需要每次从我的Player实例创建一个新的PlayerDTO实例,我正在寻找一种更好,更清晰的方法.我的一个想法是向播放器类添加一个AsPlayerDTO()方法,但如果我可以控制类型转换过程会很好,所以我可以这样做:
var playerDto = player as PlayerDTO;
Run Code Online (Sandbox Code Playgroud)
任何人都知道这是否可能以及我怎么能这样做?
谢谢,
您可以实现隐式或显式类型转换:http://msdn.microsoft.com/en-us/library/ms173105.aspx。
或者,如果您想避免每个类都必须了解另一个类,则可以使用自定义映射或现有映射库(如AutoMapper )。
| 归档时间: |
|
| 查看次数: |
1007 次 |
| 最近记录: |