我有一个名为AlertDialogViewModel
的课程,其中包含两个构造函数,一个构建Object
和string
,另一个构建string
。
public class AlertDialogViewModel
{
public AlertDialogViewModel(object contentObject, string title)
{
this.ContentObject = contentObject;
this.Title = title;
}
public AlertDialogViewModel(string contentString, string title)
{
this.ContentString = contentString;
this.Title = title;
}
public object ContentObject { get; set; }
public string ContentString { get; set; }
public string Title { get; set; }
}
在单元测试中,我创建了一个新实例,第一个参数为null。
[TestMethod]
public void Instancing_string_alert_with_null_content_throws_exception()
{
// Arrange
const string title = "Unit Test";
// Act
var alertDialog = new AlertDialogViewModel(null, title);
}
当我运行单元测试时,它使用将字符串作为第一个参数的构造函数。什么是编译器/运行时确定哪个是需要使用的正确构造函数?
这不会导致我的代码出现任何问题,我只是想了解为什么在将来这实际上很重要的情况下选择了构造函数。