看似不暧昧的暧昧调用

daz*_*sed 5 c++ c++-cli .net-core

使用 dotnetcore 3.1 在 C++/CLI 中工作。也许我只是盯着这个看得太久了,但我只是没有看到它。这是我的一个类的构造函数......

FooReader::FooReader(Stream^ stream) : FooReader()
{
   _streamReader = gcnew StreamReader(stream);
   _ownStreamReader = true;
}
Run Code Online (Sandbox Code Playgroud)

编译时我得到以下信息...

对重载函数的不明确调用可能是“System::IO::StreamReader::StreamReader(System::IO::Stream ^,System::Text::Encoding ^,bool,int,bool)”或“System::IO” ::StreamReader::StreamReader(System::IO::Stream ^) 在尝试匹配参数列表 '(System::IO::Stream ^)' 时

根据MSDN, StreamReader 只有两个构造函数接受一个参数...一个接受 a String^,另一个接受 a Stream^。在我看来,我与其中一个签名完全匹配……哪里有歧义?我觉得我在这里遗漏了一些明显的东西。