c# - 构造函数和 With{} 哪个先出现?

标签 c# .net vb.net

我有一个 C# 类,其中默认构造函数设置属性默认值。然后,在 VB.Net 项目中,我创建一个实例并使用 With{} 从数据库填充它。

我的问题是,构造函数是先发生还是应该先发生? 我看到一些奇怪的东西,并试图找出从哪里开始寻找。


缩写代码

public class Contact
{
  public Guid ID {get; set;}
  public DateTime? InactiveDate {get; set;}

  public Contact()
  {
    this.ID = Guid.NewGuid();
    this.InactiveDate = null;
  }
}

Public Shared Function GetContact(ByVal contactID As Guid) As Models.Contact
  Dim results As Models.Contact = context.tblContacts.Where(Function(c) c.ID = contactID _
  .Select(Function(c) New Models.Contact() With { .ID = c.ID, .InactiveDate = c.InactiveDate}).SingleOrDefault()

  Return results
End Function 

我看到的是我的 InactiveDate 设置为 null

最佳答案

无论你对对象做什么,构造函数总是先执行。

关于c# - 构造函数和 With{} 哪个先出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15573143/

相关文章:

c# - IDbConnection Open 挂起 C#

c# - 回收 Worker 进程对 WCF 服务的影响

.net - .NET 3.5 中的 CultureInfo 类支持哪些文化?

c# - 如何在 Excel 共享插件中使用对话框

c# - 无边框 WPF 窗口上没有玻璃效果的原生 Aero 模糊

regex - 如何通过从结果中排除标签来捕获 <TAGs> 中的文本?

c# - 在某些情况下禁用 Required 验证属性

.net - C:\WINDOWS\assembly\NativeImages_v2.0.50727_32\index3a0.dat用于什么?

c# - 什么是NullReferenceException,如何解决?

c# - 使用非泛型基类集合作为派生类?