簡體   English   中英

在 C# 中為方法指定訪問修飾符等效於 get 和 set

[英]In C# specify access modifier for a method is equivalent to get and set

我正在為 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屬性的實現滿足要求。 你應該執行哪兩個操作? (每個正確答案代表完整解決方案的一部分。選擇兩個。)

A. 用以下代碼段替換第 05 行: protected get;

B. 用以下代碼段替換第 06 行: private set;

C. 將第 03 行替換為以下代碼段: public string EmployeeType

D. 用以下代碼段替換第 05 行: private get;

E. 用以下代碼段替換第 03 行: protected string EmployeeType

F. 用以下代碼段替換第 06 行: protected set;

你的問題一定有錯誤。 您不能選擇 2 個回答並回答問題。 唯一正確答案是E

  1. 你不能同時擁有 getter 和 setter 的訪問修飾符(所以 A+F 是錯誤的)
  2. getter 或 setter 上的訪問修飾符必須比屬性的訪問修飾符更嚴格。 protected並不比internal更具限制性。

有問題。 要求應該是:

該值只能由 Employee 類或從 Employee 類派生的類中的代碼訪問。 該值只能由 Employee 類中的代碼修改。

然后答案是:

將第 03 行替換為以下代碼段:protected string EmployeeType

將第 06 行替換為以下代碼段:private set;

OP 很困惑,因為問題來自 MS EXAM 70-483 的腦殘,其中問題和答案並不總是正確連接。 這種情況經常發生,我不確定確切的原因,但盜版副本預計會出現這樣的情況。 我發布的是符合答案的問題,然后是 B 和 E。

至於刪除我之前帖子的版主,我解釋了為什么這個問題沒有正確答案

我發現了上面提到的問題,在我看來,原始問題的表述方式不同。 這是@vanjavk 注意到的。 這個問題的截圖發布在下面: 在此處輸入圖片說明

而正確答案確實是E+F。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM