当编写一个接受字符串并根据它填充poco的方法时,最好是使用Parse(string s)
之类的静态Int32.Parse()
方法,还是重载构造函数以使它需要字符串?
答案 0 :(得分:9)
我更喜欢构造函数版本,但两者都很容易,因为构造函数只能调用Parse
。这是Guid
结构所遵循的模式(也可能是其他结构)。
我应该补充一点,如果你没有处理struct
,那么static
方法可能应该引用构造函数(或者甚至是一个可以调用的单独方法),因为你可以在this
构造函数中分配给class
。
编辑:正如TrueWill指出的那样,如果您确实包含Parse
,则还应包括TryParse
。顺便提一下,Guid
再次具有指导意义:Parse
方法实际使用TryParse
,如果TryParse
返回false
,则会抛出异常。
答案 1 :(得分:2)
如果该方法因字符串无效而失败,我会倾向于Parse,并根据TryParse包含TryParse pattern。
答案 2 :(得分:0)
我建议使用.Parse(string s)如果它是一个简单的对象,如果对象存储的值超过1-2个值你应该使用构造函数,或者换句话说,如果返回值是一个实例,则不解析对于不受解析值影响的成员。