1

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

以下哪项更改不能对下面的 C# 方法 call( 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
  • 替换ref fileNameFileName: "Test.docx"
  • 替换ref fileNameFileName: ref fileName

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

谢谢。

在此处输入图像描述

更新

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

4

2 回答 2

1

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

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");) 中传递了一个字符串变量,而不是实例化。

于 2013-04-24T00:06:03.647 回答
0
  • 替换缺少的对象 = Missing.Value; with object Missing Remove :将给出错误,使用未分配的局部变量

  • object fileName = "Test.docx" : : 会报错,使用未赋值的局部变量

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

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

于 2013-04-23T23:10:39.197 回答