下文,引用自http://bbs.csdn.net/topics/190113592论坛的大牛的见解,独到又易懂。
面向对象,你就得站在事物本身的角度考虑问题
C#this在vb为Me也是和“我”是一个意思
人这个类,你就是人的一个实例
你的身高、性别、年龄就是属性
睡觉()、工作()、学习()就是方法
碰见高兴、悲伤、疑惑就是事件
你对你自己说“睡觉去了”,说全一点是“我睡觉去了”,对于你自己来可以省去说“我”
就像
1
2
|
Text =
"测试"
;
//省去this一样
this
.Text =
"测试"
;
|
当然世界上不只你一个人,也不只人一个类
你上班的某某某公司也可以看成一个公司的实例
某某某公司,发工资给“我”
那就好像这条语句了
1
|
otherObject.Bar(
this
);
|
发工资()是公司的一个方法
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
MyClass
{
internal
int
x = 123;
public
void
Foo(UClass Bar)
{
Bar.Bar(
this
);
}
}
class
UClass
{
public
void
Bar(MyClass AMyClass)
{
AMyClass.x = 321;
}
}
private
void
button1_Click(
object
sender, EventArgs e)
{
MyClass vMyClass =
new
MyClass();
UClass vUClass =
new
UClass();
Console.WriteLine(
"调用前x={0}"
, vMyClass.x);
vMyClass.Foo(vUClass);
Console.WriteLine(
"调用后x={0}"
, vMyClass.x);
}
|
测试结果
[code=BatchFile]
调用前x=123
调用后x=321[/code]