更改方法声明

我正在做评估,这是我得到的一个问题:

无法对下面的C#方法调用( document.SaveAs(...) )的声明进行以下哪些更改以简化代码:

 object fileName = "Test.docx"; object missing = Missing.Value; document.SaveAs(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); 
  • 替换object missing = Missing.Value; object Missing
  • 删除object fileName = "Test.docx"; 声明
  • 删除所有出现的ref
  • FileName: "Test.docx"替换ref fileName FileName: "Test.docx"
  • FileName: ref fileName替换FileName: ref fileName

我已经做了评估,我只是好奇,因为我实际上没有得到这个问题。

谢谢。

在此处输入图像描述

UPDATE

我收到了结果,“不幸的是”只得到了89%,根据招聘人员的说法,这还不够……无论如何,就像我之前说的那样,我选择了选项D和E,并且问题部分正确,并且鉴于我最多只能选择3个选项,选项A,B,C和D不能全部正确。

由于最后一个引起混淆,这可能会有所帮助。

 public class Document { public void SaveAs(ref string DocName) { } } 

请注意,参数名称是DocName 。 通常这个参数名称被认为是方法只使用的东西,并且在方法之外不重要,但是从.NET 4开始(我认为?),C#可以使用这种格式的命名参数。 如果你熟悉Objective-C,你会经常看到这些。 使用命名参数, DocName很重要。

我们现在可以像这样调用这个方法

 string fName = "Test.docx"; Document d = new Document(); d.SaveAs(DocName: ref fName); 

请注意,必须使用DocName ,否则编译器将抛出错误(因此您无法执行d.SaveAs(RandomName: ref fName); )。 另请注意,字符串变量在方法声明中传递并未实例化( d.SaveAs(DocName: "Test.docx"); )。

  • 替换对象缺失= Missing.Value; 对象缺少删除:将给出错误,使用未分配的局部变量

  • object fileName =“Test.docx”::将给出错误,使用未分配的局部变量

  • 语句删除ref的所有出现:这很好,将引用的变量转换为本地变量

最后两个我不知道,措辞可怕。