C# 属性

1
2
3
4
5
6
7
8
9
访问修饰符 数据类型 属性名
{
get {
return 变量名;
}
set {
变量名 = value;
}
}

访问修饰符用来确定属性的可用范围,下面介绍常用的几个访问修饰符。

public:不限制对该属性的访问。
protected:只能从其所在类和所在类的子类(派生类)进行访问。
internal:只有其所在类才能访问。
private:私有访问修饰符,只能在其声明类中使用。

换一种说法:

public:对任何类和成员都公开,无限制访问;
protected:仅仅对该类以及该类的派生类公开:
private:仅仅对该类公开;
internal:只能值包含该类的程序集中访问该类; // 同一命名空间
protected internal:只能在本类,派生类或者包含该类的程序集中访问

测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class PTest
{
static void Main(string[] args)
{
Program test = new Program();
test.Day = 5;
Console.WriteLine(test.Day);
}

}
public class Program
{
private int day;
public int Day {
get {
return day;
}
set { // 只能传 0~8 的值
if(value > 0 && value < 8) {
day = value;
}
}
}
}

输出:

1
2
3
5

如果超出范围,其输出的是默认值 0。

private set:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Program
{
public Program()
{
a = 200;
}
private int a;
public int A {
get {
return a;
}
private set {
a = value;
}
}

}

class PMain
{
static void Main(string[] args)
{
Program p = new Program();
Console.WriteLine("A = {0}", p.A); // 可以读
// p.A = 100; // 这样不允许。

Console.Read();
}
}

private set 这样的形式,类外可读不可写。




另外:
1.关于访问修饰符
2.关于属性

感谢支持!