在C#中,指定方法的访问修饰符等效于get和set

时间:2016-09-21 12:22:10

标签: c#

我正在学习Microsoft考试70-483。在本练习中,正确的答案是A和F.在我看来,E也是正确的。我认为E完全等同于A + F.这是真的吗?

问题: 您正在创建名为Employee的类。该类公开了一个名为EmployeeType的字符串属性。以下代码段定义Employee类。 (行号仅供参考。)

01 public class Employee
02 {
03     internal string EmployeeType
04     {
05         get;
06         set;
07     }
08 }

EmployeeType属性值必须仅由Employee类中的代码或从Employee类派生的类中访问和修改。您需要确保执行EmployeeType属性符合要求。你应该执行哪两个操作? (每个正确答案代表完整解决方案的一部分。选择两个。)

一个。将第05行替换为以下代码段:protected get;

B中。将第06行替换为以下代码段:private set;

℃。将第03行替换为以下代码段:public string EmployeeType

d。将第05行替换为以下代码段:private get;

电子。将第03行替换为以下代码段:protected string EmployeeType

F。将第06行替换为以下代码段:protected set;

3 个答案:

答案 0 :(得分:10)

您的问题一定有错误。您无法选择2个回复并回答问题。唯一正确的答案是E

  1. 您无法为getter和setter设置访问修饰符(因此A + F错误)
  2. getter或setter上的访问修饰符必须比属性的访问修饰符更具限制性。 protected并不比internal更具限制性。

答案 1 :(得分:0)

存在错误。要求应该是:

该值只能由Employee类中的代码访问,或者 在从Employee类派生的类中。该值必须是 只能通过Employee类中的代码进行修改。

然后答案将是:

将03行替换为以下代码段:受保护的字符串 EmployeeType

将第06行替换为以下代码段:私有集;

OP感到困惑,因为问题来自MS EXAM 70-483的大脑转储,那里的问题和答案不一定总是正确连接。这种情况经常发生,我不确定原因到底是什么,但是在盗版副本中会出现类似的情况。我发布的是适合答案的问题,然后是B和E。

关于删除我上一篇帖子的主持人,我解释了为什么这个问题没有正确答案

答案 2 :(得分:-1)

我找到了上面提到的问题,在我看来,原始问题是用不同的方式提出的。这是@vanjavk注意到的。 此问题的屏幕截图发布在下面: enter image description here

正确的答案确实是E + F。