C#内建了大量基本数据类型(primitive data type)。下表总结了C#最常用的基本数据类型以及允许的取值范围。
数据类型 |
描述
| 大小(位) |
范围 |
示例 |
int |
整数 |
32 |
–231~231– 1 |
int count;
count = 42; |
long |
长整数 |
64 |
–263~263–1 |
long wait;
wait = 42L; |
float |
浮点数 |
32 |
±1.5 × 1045~±3.4 × 1038 |
float away;
away = 0.42F; |
double |
双精度(更精确)浮点数 |
64 |
±5.0 × 10-324~±1.7 × 10308 |
double trouble;
trouble = 0.42; |
decimal |
货币值(比double具有更高的精度和更小的范围) |
128 |
±1.0 × 10-28 ~ ±7.9 × 1028 |
decimal coin;
coin = 0.42M; |
string |
字符序列 |
每字符16位 |
不适用 |
string vest;
vest = "fortytwo"; |
Char |
单字符 |
16 |
0 ~216–1 |
char grill;
grill = 'x'; |
Bool |
布尔值 |
8 |
true或false |
bool teeth;
teeth = false; |
2.4.1 未赋值的局部变量一个变量在声明时,会包含一个随机的值,直到明确为其赋一个值。C和C++程序的许多bug都是由于这个原因造成的,因为程序员可能还没有赋值就开始使用自己声明的一个变量。但是,C#不允许使用未赋值的变量。变量必须先赋值再使用,否则程序可能无法编译。这就是所谓的明确赋值规则(Definite Assignment Rule)。例如,以下语句将产生一个编译时错误,因为age尚未赋值:
int age;
Console.WriteLine(age); // 编译时错误
2.4.2 显示基本数据类型值在以下练习中,将使用一个名为PrimitiveDataTypes的C#程序来体验几种基本数据类型的工作方式。
显示基本数据类型值1. 如果还没有运行Visual Studio 2010,请启动它。
2. 如果使用的是Visual Studio 2010标准版或Visual Studio 2010专业版,请选择“文件”|“打开”|“项目/解决方案”。 如果使用的是Visual C# 2010学习版,则选择“文件”|“打开项目”命令。 随后会出现“打开项目”对话框。
3. 切换到“文档”文件夹下的\Microsoft Press\Visual CSharp Step by Step\Chapter 2\PrimitiveDataTypes子文件夹。选中解决方案文件PrimitiveDataTypes.sln,单击“打开”。 随后将加载解决方案。解决方案资源管理器将显示PrimitiveDataTypes项目。
注意:解决方案文件使用.sln后缀作为扩展名,例如PrimitiveDataTypes.sln。一个解决方案中可以包含一个或多个项目。项目文件使用.csproj扩展名。假如打开的是一个项目而不是解决方案,Visual Studio 2010会为它自动创建一个新的解决方案文件。生成解决方案时,Visual Studio 2010会自动保存任何更新的或者新增的文件,并提示指定新的解决方案文件的名称和位置。
4. 在“调试”菜单中选择“开始执行(不调试)”来生成并运行应用程序。 随后会显示下图所示的应用程序窗口。
5. 在“Choose a data type”(选择数据类型)列表中,单击“string”类型。 “forty two”这个值会出现在Sample value(示例值)框中。
6. 单击列表中的int类型。 Sample value文本框中会显示值to do,表明用于显示一个int值的语句还没有写好。
7. 单击列表中的每一种数据类型。确定用于double和bool类型的代码都尚未实现。
8. 单击Quit按钮关闭窗口并终止程序。 现在,控制权将返回Visual Studio 2010编程环境。
在代码中使用基本数据类型1.在“解决方案资源管理器”中,双击MainWindow.xaml文件。 随后,该应用程序的WPF窗体将出现在“设计视图”窗口中。
2.在显示了MainWindow.xaml窗体的“代码和文本编辑器”窗口中,右击任意位置,然后从快捷菜单中单击“查看代码”。 随后会在“代码和文本编辑器”窗口中显示MainWindow.xaml.cs文件的内容。
注意:记住,还可以使用解决方案资源管理器来访问代码,具体做法是展开MainWindow.xaml,然后双击MainWindow.xaml.cs。
3.在“代码和文本编辑器”窗口中,找到showFloatValue方法。
提示:要在当前项目中查找特定的内容,可以在"编辑"菜单中选择"查找和替换"|"快速查找"。随后会打开一个对话框,询问想查找什么。输入要查找的某一项的名称,单击"查找下一个"。默认情况下,这个搜索是不区分大小写的。如果想执行一次区分大小写的查找,请单击"查找选项"标签左侧的加号(+)图标来显示附加的选项,并勾选"大小写匹配"。如果愿意,还可以试验一下其他选项。 还可以直接按Ctrl+F组合键(按住Ctrl键不放,再按F键)来显示"快速查找"对话框,而不必使用"编辑"菜单。类似地,可以直接按Ctrl+H组合键来显示"快速替换"对话框。
除了利用"快速查找"功能,还可利用"代码和文本编辑器"窗口右上角的类成员下拉列表来查找一个类中的方法。在这个下拉列表中,列出了类中的所有成员,另外还有类包含的变量和其他项。(以后的章节会详细讲述这些项。)请在这个下拉列表中单击showFloatValue()。随后,光标会直接跳至类中的showFloatValue方法。
单击列表框中的float类型时,将运行showFloatValue方法。这个方法包含以下3个语句:
float variable;
variable=0.42F;
value.Text = "0.42F";
第一个语句声明float类型的一个变量,并把它命名为variable。
第二个语句将值0.42F赋给变量variable(F是一个类型后缀,指出应将值0.42当作一个float值来处理)。如果忘记添加F后缀,那么值0.42将被视为一个double值。这样一来,程序将无法编译,因为如果不写一些额外的代码,就不能将一种类型的值赋给另一种类型的变量。C#语言在这方面是非常严格的。
第三个语句在窗体的value文本框中显示该变量的值。应该多留意一下该语句。要在文本框中显示一个项目,必须设置该文本框的Text属性。注意,可以使用前面介绍的用于运行方法的“点”记号法来访问对象的属性(还记得第1章的Console.WriteLine方法")为Text属性提供的数据必须是一个字符串(一组包含在双引号中的字符),而不能是数字。如果试图将数字赋给Text属性,程序将无法编译。在这里的程序中,该语句只是简单地在文本框中显示“0.42F”。在实际应用程序中,应该添加额外的语句先将变量variable的值转换为字符串,再将其分配给Text属性。但在此之前,还要多了解一下C#语言和Microsoft .NET Framework才行。(第11章和第21章全面介绍了数据类型的转换。)
4.在“代码和文本编辑器”窗口中,找到如下所示的showIntValue方法:
private void showIntValue()
{
value.Text = "to do";
}
在列表框中单击int类型时,就会调用showIntValue方法。
5.在showIntValue方法开头(在起始大括号后另起一行)输入两个语句(在以下代码中加粗显示):
private void showIntValue()
{
int variable;
variable= 42;
value.Text = "to do";
}
6.在该方法的原始语句中,将字符串"to do"改成"42"。方法现在应该像下面这样:
private void showIntValue()
{
int variable;
variable = 42;
value.Text = "42";
}
注意:如果你有一定的编程经验,可能会试图把第3个语句改为以下形式:
value.Text = variable;
这看起来似乎会在窗体上的value文本框中显示variable变量的值。但C#语言会执行严格的类型检查。文本框只能显示string值,而variable变量是一个int,所以该语句无法成功编译。本章稍后将介绍如何进行数字和字符串值之间的转换。
7.在“调试”菜单中选择“开始执行(不调试)”命令。 窗体将再次出现。
8.从列表框中选择int类型。确定Sample value文本框显示值42。
9.单击Quit按钮关闭窗口并终止程序。
10.在“代码和文本编辑器”窗口中,找到showDoubleValue方法。
11.按照以下加粗显示的代码那样编辑showDoubleValue方法:
private void showDoubleValue()
{
double variable;
variable= 0.42;
value.Text = "0.42";
}
12. 在“代码和文本编辑器”窗口中,找到showBoolValue方法。
13. 像下面这样编辑showBoolValue方法:
private void showBoolValue()
{
bool variable;
variable= false;
value.Text = "false";
}
14.在“调试”菜单中,选择“开始执行(不调试)”命令。
15.从Choose a data type列表中选择int,double和bool类型。在每一种情况下,都验证Sample value文本框中显示的是正确的值。
16.单击Quit按钮终止程序运行。=