解析方法或重载构造函数

本文关键字:重载 构造函数 方法 | 更新日期: 2023-09-27 18:05:09

当编写一个方法,接受一个字符串,并基于它填充poco,是有一个静态的Parse(string s)方法,如Int32.Parse()或重载构造函数,所以它接受一个字符串?

解析方法或重载构造函数

我更喜欢构造函数版本,但包括两者都很容易,因为构造函数可以只调用Parse。这是Guid结构体(也可能是其他结构体)遵循的模式。

我应该补充说,如果你不处理struct,那么static方法应该可能引用构造函数(甚至是一个可以调用的单独方法),因为你不能在class构造函数中分配给this

EDIT:正如TrueWill指出的,如果你包含Parse,你也应该包括TryParse。顺便说一下,Guid再次具有指导意义:Parse方法实际上使用TryParse,如果TryParse返回false,则抛出异常。

如果方法可能由于无效字符串而失败,我倾向于使用Parse并按照TryParse模式包含TryParse。

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