您的位置:首页 > 其它

.NET 基础知识总结(更新)

2009-04-08 12:09 309 查看
1.C#变量-命名规则

变量的命名基本规则:

(1)变量名的第一个字符必须是字母,下划线("_")或@

(2)其后的字符可以是字母,下划线或数字。

另外,一些关键字对于C#编辑器而言有特定含义,如果错误使用其中一个关键字,编译器会出错。例如:using和namespace

例如:

下列变量名正确

myBigVar

VARI

_text

下列变量名不正确

99BottlesofBeer

namespace

It's-All-Over

变量命名的约定:

在看这个的时候一定要清楚,这些约定是有争议的(书上就这么说的)

(1)最流行的是Hungarian记号法

这种方法是在所有变量名前加上一个形式的前缀表示其类型。如:一个变量的类型是int,在其名称前加i或n(iAge),使用这个方法可以快速看出变量是什么类型。

缺点:由于C#可以创造自己的类型,且.NET Framework中有上百种复杂类型,所以这个系统很快失效了,在很多人完成的工作中,不同的人容易混淆不同的前缀。

(2) 目前.NET
Framework中的两种命名约定:PascalCase和camelCase.在名称中使用大小写表示它们的用途。它们都应用到多个单词组成的名称
中,并指定名称中的每个单词除第一个字母大写外,其余的字母均小写。在camelCase中还有一个规则,即第一个单词以小写字母开头。

下面是PascalCase变量名:

Age

LastName

TimeOfDiscontent

下面是camelCase变量名:

age

firstName

timeOfDeath

Microsoft建议:对于简单的变量用camelCase规则,比较高级的命名则用PascalCase

(3)注意:许多年以前命令系统常使用下划线字符作为变量名中各个单词之间的分隔符,如my_first_variable,这种方法已经淘汰了!

2.面向对象的继承,派生类,保护,私有变量的一个问题:

public class A
{
private int x;
static void F(A a, B b)
{
a.x = 1; // Ok
b.x = 1; // Ok
}
}
public class B: A
{
static void F(A a, B b)
{
a.x = 1; // 'A.x' is inaccessible due to its protection level

b.x = 1; // 'A.x' is inaccessible due to its protection level
}
}

-------------------------------------
public class A
{
protected int x;
static void F(A a, B b)
{
a.x = 1; // Ok
b.x = 1; // Ok
}
}
public class B: A
{
static void F(A a, B b)
{
a.x = 1; // Cannot access protected member 'A.x' via a qualifier of type 'A'; the qualifier must be of type 'B' (or derived from it)

b.x = 1; // Ok
}
}

A
中可以通过
A
B
的实例访问
x
,这是因为在两种情况下访问都通过
A
的实例或从
A
派生的类发生。但是在
B
中,由于
A
不从
B
派生,所以不可能通过
A
的实例访问
x
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: