上一章我介绍C#语言的程序结构和数据类型,已对C#语言有了初步的认识。现在继续对C#基础的其他知识进行介绍。 本文介绍C#语言基础知识之变量、常量和数据类型之间的转换,是C#语言基础的第二篇。
变量表示数值或字符串值或类的对象。变量存储的值可能会发生更改,但名称保持不变。变量是字段的一种类型。C#中的每个变量都有一个特定的类型,类型决定了变量的内存大小和布局。数据类型在上一章中已经介绍。
C#中变量是怎样定义的,下面是定义变量的语法:<修饰符> <数据类型> <变量名称> 。
;
定义变量的例子:
// 定义未初始化
string personName;
// 定义并初始化
int personAge=18;
*使用变量需先声明再赋值,然后使用的规则
变量的命名有一定的规范,使用规范的命名可以改善代码的可读性及可维护性,我们必须遵守编码规范。
首先,变量命名要有意义,可以用任意的字母、数字、下划线来组成,但需要注意不能与C#的关键字重复、大小写敏感、不能重复定义。
其次,在为变量命名时要满足下面的一些常见的命名规则。
Pascal 规则:每个单词开头的字母大写,如PersonName。
Camel 规则:除了第一个单词外的其他单词的开头字母大写,如 personName。
变量的作用域是可以访问该变量的代码区域。它与变量定义的位置密切相关,可以遵循以下规则来确定变量的作用域。
1、类在某个作用域中,其字段(成员变量)也在该作用域内。
2、在声明该变量的块语句或方法结束的右花括号({})之前的作用域内。
3、在循环语句中声明的变量存在于该循环体内。
4、成员变量【类级别声明的变量】和局部变量【方法内中声明的变量】的作用域冲突。
常量是另一种类型的字段,是固定值。它保存在编译程序时赋予的值,并且从那之后在任何情况下都不会发生更改,常量使用const关键字来定义。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量,还有枚举常量。
字符常量是括在单引号里,例如,'a',且可存储在一个简单的字符类型变量中,在C#中有一些特定的字符,当它们的前面带有反斜杠时有特殊的意义。下表列出一些转义序列码:
转义序列 | 含义 |
\\ | \ 字符 |
\' | ' 字符 |
\" | " 字符 |
\? | ? 字符 |
\a | Alert 或 bell |
\b | 退格键(Backspace) |
\f | 换页符(Form feed) |
\n | 换行符(Newline) |
\r | 回车 |
\t | 水平制表符 tab |
\v | 垂直制表符 tab |
\0000 | 一到三位的八进制数 |
\xhhhh | 一个或多个数字的十六进制数 |
C#中常量是怎样定义的,下面是定义变量的语法:const <数据类型> <变量名称> =常量值
const =value;
定义常量的例子:
// 定义整数常量
const int speedLimit = 60;
// 定义浮点常量
const double PI = 3.14159;
// 定义字符常量
const char TAB='\t';
类型转换是把数据类型从一种类型转换为另一种类型。在C#中类型转换有两种形式:
隐式类型转换:是C#默认的以安全方式进行的转换。如从小的整数类型转换为大的整数类型,从派生类转换为基类。
显式类型转换:是通过用户使用预定义的函数显式完成的。显式转换需要强制转换运算符。
C# 提供了下列内置的类型转换方法:
序号 | 方法 | 描述 |
1 | ToBoolean | 如果可能的话,把类型转换为布尔型。 |
2 | ToByte | 把类型转换为字节类型。 |
3 | ToChar | 如果可能的话,把类型转换为单个 Unicode 字符类型。 |
4 | ToDateTime | 把类型(整数或字符串类型)转换为 日期-时间 结构。 |
5 | ToDecimal | 把浮点型或整数类型转换为十进制类型。 |
6 | ToDouble | 把类型转换为双精度浮点型。 |
7 | ToInt16 | 把类型转换为 16 位整数类型。 |
8 | ToInt32 | 把类型转换为 32 位整数类型。 |
9 | ToInt64 | 把类型转换为 64 位整数类型。 |
10 | ToSbyte | 把类型转换为有符号字节类型。 |
11 | ToSingle | 把类型转换为小浮点数类型。 |
12 | ToString | 把类型转换为字符串类型。 |
13 | ToType | 把类型转换为指定类型。 |
14 | ToUInt16 | 把类型转换为 16 位无符号整数类型。 |
15 | ToUInt32 | 把类型转换为 32 位无符号整数类型。 |
16 | ToUInt64 | 把类型转换为 64 位无符号整数类型。 |
// 使用到的命名库
#region UseNamespace
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
#endregion
///
/// 命名空间 我们一般按项目、实现相同功能等来定义它
///
namespace Fountain.Net.Base.Sample
{
///
/// 类名
///
class Program
{
///
/// 控制台程序入口
///
static void Main(string[] args)
{
// 定义布尔类型变量
bool isOpen = true;
Console.WriteLine("布尔值:" + isOpen);
// 定义整型类型变量
int apple = 10;
Console.WriteLine("双精度的十进制值:" + apple);
// 定义双精度浮点类型
decimal yuan = 168.00M;
Console.WriteLine("双精度的十进制值:" + yuan);
// 定义双精度浮点型常量
const double PI = 3.14159;
Console.WriteLine("双精度浮点型常量:" + PI);
// 定义字符型常量
const char TAB = '\t';
Console.WriteLine("水平制表符 tab:" + TAB);
// 定义双精度的十进制值
double meters = 100.12;
// 强制转换 double 为 int
int intMeter = (int)meters;
// 通过类型转换方法
string stringMeter = meters.ToString();
// 等待控制台输入
Console.ReadKey();
}
}
}
本文对C#语言的变量、常量的定义、命名规范和数据类型转换进行描述,其它基础知识可关注后续。大家可以尝试自己动手代码。