繁体   English   中英

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

[英]Type conversion from string to User defined type

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

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

任何的意见都将会有帮助,

所以你需要这样的东西:

public class User
{
    ...

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

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

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

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

您可以重载显式/隐式运算符。
看看这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM