C# Public Variables - common programming practise
当我6到8年前在大学时,我认识到,在使用Java时,公共获取和设置方法,但私有变量是常见的做法。然而,最近,当我使用c_时,我意识到许多公共类变量都具有公共的可访问性,例如string.length。
公开变量是C语言中的常见做法吗(人们是否普遍接受这样的编程方式)?
谢谢
string.length实际上不是公共变量。在C中,使用getter的方式很常见:
1 2 3 4 5 6 7 8 9 10 11 12 | class Foo { private int _bar; public int Bar { get { return _bar; } // getter set { _bar = value; } // setter } } // ... Foo foo = new Foo(); foo.Bar = 42; |
换句话说,string.length只是只读变量string的getter。
通常,将
使用
1 | public int Foo{ get; set; } |
使用两次
1 | public int Foo{ get; private set; } |
在使用快捷方式
1 2 3 4 5 6 7 | private int Foo; public int MyProperty { get { return Foo;} set { Foo = value;} } |
也可以将公共变量设置为只读,而不是将其setter设置为私有:
1 2 3 4 5 6 7 8 9 | class Foo { public readonly int Bar; // Bar can only be initialized in the constructor public Foo() { this.Bar = 42; } } |