我有一个ac#方法我从dll加载默认的可选字符串参数null.例如
public void foo(string path, string new_name = null, bool save_now = true)
{
if(name == null)
new_name = Path.GetFileNameWithoutExtension(path);
...
if(save_now)
Save();
}
Run Code Online (Sandbox Code Playgroud)
我想在一个powershell脚本中调用它,而不是为new_name一个for 提供一个值save_now.根据这个看似非常相似的问题,我试过了
$default = [type]::Missing
$obj.foo($path, $default, $false)
Run Code Online (Sandbox Code Playgroud)
但这导致new_name被设置"System.Reflection.Missing"在函数内.
另外我试过了
$obj.foo($path, $null, $false)
Run Code Online (Sandbox Code Playgroud)
但这会导致new_name设置为空字符串,但仍然没有null.我可以将默认设置为空字符串,但我想知道是否有任何好方法可以使用默认值.