【问题标题】:What is this constructor doing? new MailAddress[0]这个构造函数在做什么?新邮件地址[0]
【发布时间】:2018-04-22 21:53:00
【问题描述】:

我知道如何像这样使用 MailAddress: new MailAddress("someone@foo.com")

但我看到的是什么: new MailAddress[0] - 这是如何使用的,什么时候可以使用?我在 MSDN 上的文档中没有看到任何关于此的内容。

【问题讨论】:

  • new MailAddress[0] 创建一个大小为 0 的 MailAddresses 数组(即没有元素)。您可以随时使用它。它并不特定于 MailAddress 类型。
  • 嗯,好的。这只是用于在调用给定方法时满足类型要求吗?
  • 很难说没有看到它在上下文中的使用,但很可能是的。
  • 请注意,当您的意思是“碰巧为空的集合”时,传递null 被认为是一种非常糟糕的编程习惯。编写此代码的人应该因未传递 null 而获得积分,但也可以通过说明为什么他们传递空集合来澄清代码。
  • @EricLippert - 我会删除“测试”部分,还是说 .NET 开发人员只测试公开的东西? ;)

标签: c# mailaddress


【解决方案1】:

毕竟上面所有的cmets....主要区别是

mailAddress mA = new mailAddress();

mA 对象通过调用默认构造函数进行初始化。

mailAddress[] mA1 = new mailAddress[0];

在这种情况下,没有对象被初始化,它只是对象数组的声明。没有构造函数调用。

【讨论】:

  • @Naidu 这解释了为什么构造一个大小为零的数组是有效的。不是为什么访问其中包含零项的数组的第一个元素是有效的。如果您想亲自查看,请随意运行代码。
  • 我对建筑完全视而不见......并认为某种优化正在起作用......谢谢@Sefe
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-03
  • 2023-01-25
  • 2017-04-11
相关资源
最近更新 更多