您的位置:首页 > 移动开发 > Objective-C

Beginning C# Objects从概念到代码——1.6 变量

2006-12-11 12:55 344 查看
1.6 变量

如前所述,在使用变量之前,必须声明其名称和类型。在首次声明变量前,可以给它设置初始值,也可以在稍后的代码中赋值。例如,下面的代码片段声明两个简单类型变量。第一个是int类型,在声明时赋值。第二个是double类型,在后面的代码行中赋值。

int count = 3;

double total;

// 中间的代码……细节忽略

total = 34.3;

使用关键字true或false来给一个bool类型变量赋值。

bool blah;

bla h = true;

布尔类型变量常被用来作为代码执行的条件标识,如下例所示:

bool error = false; // 初始化标识。

// ...

// 在后面的程序中(伪代码):

if (发生某种情况) {

//把标识设置为真,表示错误发生了。

error = true;

}

// ...

// 在后面的代码中:

if (error) {

// 伪代码。

Take corrective action

}

我们稍后才谈到if语句的一个C#流程控制语句。

可以给一个char类型变量赋予一个字符值,赋值时把该值(单个Unicode字符)放在单引号里面:

char c = 'A';

1.6.1 变量命名约定

多数变量名采用所谓的Camel命名法,首字符小写,后续的每个词首字符大写,而其他字符则小写。

在后面章节中介绍更多对象概念时,我们还会对命名规则加以详述。

例如,下面的变量就依据C#变量命名约定来命名:

int grade;

double averageGrade;

string myPetRat;

bool weAreFinished;

如前所述,C#关键字不能用作变量名。

int float; // 无法通过编译——“float”是关键字

1.6.2 变量初始化

在C#中,变量被声明时并不同时被自动赋予初始值,在访问变量值前,必须明确地为其赋值。在下面的代码片段中,声明了两个整型变量foo和bar。代码给变量foo赋了值,但没有给变量bar赋值,然后尝试把两个变量相加。

int foo;

int bar;

foo = 3; // 初始化foo,但没有初始化bar。

foo = foo + bar; // 本行不能被编译

如果试图编译上例,将会得到针对最后一行的编译错误信息:

error CS0165: use of unassigned local varrialle 'bar'

编译器的意思是,变量bar已被声明,不过未被赋值。改正错误的方法是在执行相加操作前,明确地给bar赋值:

int foo;

int bar;

foo = 3;

bar = 7; // 明确地初始化两个变量。

foo = foo + bar; // 这一行能被正确编译。

有关变量初始化的内容,其复杂度已经超出我们这里的讨论范围。在第13章里,你将学习到,当与对象的“内部工作”打交道时,还有不同的自动初始化规则。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: