查看WCF教程,有一个包含私有变量声明的类,以及用于这些声明的公共getter和setter。是否可以使用短语get
和set
声明来使用相同的修饰符组合(即具有公开公开访问器的私有变量)?
例如:
public class MyClass{
private int someNumber;
public int someNumber {
get {return someNumber;}
set {someNumber = value;}
}
}
这个问题here建议您可以混合使用这样的修饰符:
public class MyClass{
private int someNumber {public get; public set;};
}
这是对的吗? (另外,在这个具体的例子中,我看不出将int someNumber
标记为私有变量的观点。我是对的,这是没有意义的吗?)
答案 0 :(得分:3)
您可以,但内部属性方法必须比外部属性本身更具限制性。
public int someNumber { get; private set; }
这是您创建外部只读属性的方式。
这不起作用(编译器会抱怨)并且没有多大意义:
private int someNumber { get; public set; }
答案 1 :(得分:0)
您可以拥有不同的可见性级别,但您应该始终从更严格的角度转变为更开放的角色。
例如,您可以:
public string MyProperty { get; internal set; }
但你不能拥有:
private string MyProperty { public get; set; }
由于getter的公共访问修饰符比属性上的私有访问修饰符更明显。