始终使用自定义数据类型

Mar*_*tin 1 c# types

我想知道(几乎)总是在C#中使用自定义数据类型而不是依赖于内置类型(如System.Int32和System.String)是疯狂的.

例如,要表示人名,想法是使用名为PersonFirstName而不是System.String的数据类型(当然,PersonFirstName数据类型必须包含System.String).另一个示例是具有PersonID类,该类表示人员的数据库标识符,而不是具有System.Int32.

这里会有一些好处:

  • 今天,如果函数将int作为参数,则很容易传入Company对象的ID而不是Person对象的ID,因为两者都是int类型.如果函数采用了CompanyID,如果我尝试传入PersonID,我会收到编译错误.

  • 如果我想将数据库列数据类型从int更改为Person的uniqueidentifier,我只需要在PersonID类中进行更改.今天,我必须在所有需要Int并且应该代表公司的地方进行更改.

  • 在正确的位置实施验证可能更容易.""可能永远不是一个正确的名字,PersonFirstName可以照顾它.

是的,我必须编写更多的构造函数.我可以在这些中实现隐式重载,以使它们易于使用.

这是疯了吗?

Ian*_*Ian 5

是的,完全疯狂 - 总结你的想法,并解释Blackadder

太疯了!太疯了.这比今年Madman先生竞赛的获胜者Mad Jack McMad更蠢


Cha*_*had 5

我不认为那是疯狂的.我认为使用具有强类型对象的业务逻辑对象是一件非常好的事情