如果使用满足特定条件的参数调用构造函数并且我有以下代码,我将尝试以不同方式初始化构造函数。
class MessageEventArgs : EventArgs
{
private int _pId;
private string _message;
private string _channelPath;
public MessageEventArgs(string message)
{
_pId = Process.GetCurrentProcess().Id;
_message = message;
_channelPath = null;
}
public MessageEventArgs(string[] details)
{
if (details.Length == 1)
{
new MessageEventArgs(details[0]);
return;
}
_pId = int.Parse(details[0]);
_message = details[1];
_channelPath = details[2];
}
}
令人惊讶的是,在调试和逐行单步执行时,我看到所有东西都被正确调用了,但是在实例化之后,pId
并且_message
有它们的默认值,即 0 和 null