C# 解析方法或重载构造函数

C# 解析方法或重载构造函数,c#,.net,C#,.net,当编写一个接受字符串并基于该字符串填充poco的方法时,最好使用静态的Parse(string s)方法,比如Int32.Parse(),还是重载构造函数以获取字符串?我更喜欢构造函数版本,但包含这两种方法很容易,因为构造函数只能调用Parse。这是紧跟着Guidstruct的模式(很可能还有其他模式) 我应该补充一点,如果您没有处理结构,那么静态方法可能应该引用构造函数(或者甚至是两者都可以调用的单独方法),因为您不能在类构造函数中分配这个 编辑:正如TrueWill指出的那样,如果您确实包括

当编写一个接受字符串并基于该字符串填充poco的方法时,最好使用静态的
Parse(string s)
方法,比如
Int32.Parse()
,还是重载构造函数以获取字符串?

我更喜欢构造函数版本,但包含这两种方法很容易,因为构造函数只能调用
Parse
。这是紧跟着
Guid
struct的模式(很可能还有其他模式)

我应该补充一点,如果您没有处理
结构
,那么
静态
方法可能应该引用构造函数(或者甚至是两者都可以调用的单独方法),因为您不能在
构造函数中分配
这个


编辑:正如TrueWill指出的那样,如果您确实包括
Parse
,那么您也应该包括
TryParse
。顺便说一句,
Guid
再次具有指导意义:
Parse
方法实际上使用了
TryParse
,如果
TryParse
返回
false

,我建议使用.Parse(字符串s),如果它是一个简单的对象,如果对象存储的值超过1-2,则应使用构造函数,或者换句话说,如果返回值是一个成员不受解析值影响的实例,则不进行解析。

如果该方法可能因无效字符串而失败,我倾向于解析,并按照.1为TryParse添加了include,虽然我仍然会同时为dlevs和try添加解析