<分区>
我想知道(几乎)总是在 C# 中使用自定义数据类型而不是依赖于 System.Int32 和 System.String 等内置类型是否疯狂。
例如,要表示一个人的名字,其想法是使用名为 PersonFirstName 的数据类型而不是 System.String(当然,PersonFirstName 数据类型必须包含 System.String)。另一个示例是拥有一个代表个人数据库标识符的 PersonID 类,而不是拥有一个 System.Int32。
这里会有一些好处:
如今,如果函数采用 int 作为参数,则很容易传入 Company 对象的 ID 而不是 Person 对象的 ID,因为两者都是 int 类型。如果该函数采用 CompanyID,如果我尝试传入 PersonID,则会出现编译错误。
如果我想将某个人的数据库列数据类型从 int 更改为 uniqueidentifier,我只需在 PersonID 类中进行更改。今天,我将不得不对所有需要 Int 并且应该代表公司的地方进行更改。
在正确的地方实现验证可能会更容易。 “”可能永远不是正确的名字,PersonFirstName 可以处理这个问题。
是的,我将不得不编写更多的构造函数。不过,我可以在其中实现隐式重载,使它们易于使用。
这是疯了吗?