键入从字符串到用户定义类型的转换

时间:2010-07-21 13:05:55

标签: c# type-conversion

我有一个字符串类型要分配给类型为“User”的所有者。我的方法GetFullName以“string”格式返回名称,我需要将其分配给“User”类型的所有者

def.Owner = uf.GetFullName(row["assignedto"].ToString());

任何建议都会有所帮助,

4 个答案:

答案 0 :(得分:3)

所以你需要这样的东西:

public class User
{
    ...

    public static implicit operator User(string x)
    {
        return new User(x);
    }
}

就个人而言,我并不喜欢隐含的转换。你说你“需要”以这种方式分配它...显式构造函数或静态方法调用有什么问题?或可能 ToUser上的扩展方法(string)?

答案 1 :(得分:1)

@ Jon的答案会做你想要的,但你可能想查看repository pattern来管理域对象的创建。这将解决更大的问题,即确保使用域对象的代码不会绕过轴,只管理它们的生命周期和序列化/反序列化。让存储库处理这些问题并关注您的域逻辑。

答案 2 :(得分:1)

有一个转换运算符的解决方案,但是,我个人更喜欢像User.FromString(string s)这样的静态类方法,它解析字符串并构造一个User实例。这样,代码更易读,更容易理解

答案 3 :(得分:0)

您可以重载显式/隐式运算符 看看here