簡體   English   中英

C#:使用getter / setter shortand時,可以混合使用函數訪問修飾符嗎?

[英]C#: Can you mix function access modifiers when using getter/setter shortand?

在WCF教程中,有一個帶有私有變量聲明以及這些聲明的公共獲取器和設置器的類。 是否可以使用shortand getset聲明具有相同的修飾符組合(即具有公開訪問器的私有var)?

例如:

public class MyClass{
  private int someNumber;

  public int someNumber {
    get {return someNumber;}
    set {someNumber = value;}
  }
}

這個問題在這里建議您可以混合使用如下修飾符:

public class MyClass{
  private int someNumber {public get; public set;};
}

那是對的嗎? (此外,在這個特定示例中,我看不到將int someNumber標記為私有變量的意思。我對,這毫無意義嗎?)

您可以,但是內部屬性方法必須比外部屬性本身更具限制性。

public int someNumber { get; private set; }

這就是您使外部只讀屬性的方式。

這是行不通的(編譯器會抱怨)並且沒有任何意義:

private int someNumber { get; public set; }

您可以具有不同的可見性級別,但應始終從限制更嚴格到開放程度更高。

例如,您可以擁有:

public string MyProperty { get; internal set; }

但您不能擁有:

private string MyProperty { public get; set; }

因為吸氣劑的公共訪問修飾符比屬性上的私有訪問修飾符更可見。

暫無
暫無

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

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