更改方法声明
我正在做评估,这是我得到的一个问题:
无法对下面的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的所有出现:这很好,将引用的变量转换为本地变量
最后两个我不知道,措辞可怕。