c# - 始终使用自定义数据类型

标签 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 更改为 uniqueidentifier,我只需在 PersonID 类中进行更改。今天,我将不得不对所有需要 Int 并且应该代表公司的地方进行更改。

  • 在正确的地方实现验证可能会更容易。 “”可能永远不是正确的名字,PersonFirstName 可以处理这个问题。

是的,我将不得不编写更多的构造函数。不过,我可以在其中实现隐式重载,使它们易于使用。

这是疯了吗?

最佳答案

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

It's mad! It's mad. It's madder than Mad Jack McMad, the winner of this year's Mr Madman competition

关于c# - 始终使用自定义数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1708078/

相关文章:

c# - 打开并关闭 Chrome 标签页

c# - 如何比较两个富文本框内容并高亮显示变化的字符?

javascript - 我很困惑名称是什么数据类型?函数数据类型或 boolean 数据类型,因为它会返回 boolean 值?

.net - 如何从类型的程序集限定名中提取程序集全名?

c# - 在 curl 中制定 POST 请求

c# - 如何在 .NET Core 应用程序中使用 .NET Core 类库?

返回值的 C# 任务

javascript - Flow 不允许对象匹配更严格的版本

c - 不兼容的指针类型错误 [C]

android - 类型不匹配。需要 : Array<Uri>! 找到 : Array<Uri? >