变量
一、概念
变量是用于在计算机的内存中存储数据。
二、语法
- 声明变量:数据类型 变量名;
- 变量赋值:变量名 = 表达式;
- 使用变量:变量名
具体可见以下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//引用命名空间
namespace _2024_1_25 //项目名或命名空间
{class Program //Program类{static void Main(string[] args) //Main函数是程序主入口{int score; //声明变量score = 17; //变量赋值Console.WriteLine(score); //使用变量,此处输出score值Console.ReadKey();}}
}
//输出内容:17
此外,也可以直接将变量声明与赋值操作同时进行。例如上面声明与赋值,直接简化为一行代码:
int score = 17;
两种代码功能相同。
三、使用规则
变量必须先声明,再赋值,最后才能使用,前面步骤缺一不可。
四、命名规则
- 必须使用字母、下划线_、@符号开头,不能用数字作为变量名开头;
- 变量名区分大小写;
- 变量名不允许使用C#中关键字名;
- 同一变量名不允许重复定义;
- 建议使用驼峰命名法,即变量名单词中,首个单词全部小写,其他单词首字母使用大写。
常见数据类型
一、int类型
int类型为整数类型,只能存数整数,不能存储浮点数。int类型取值范围为-2 147 483 648到2 147 483 647。
二、float类型
float类型为双精度浮点数类型,可以存储整数与浮点数,存储浮点数需要在数字后添加f。float类型存储精度为小数点后7位。
三、double类型
double类型为双精度浮点数类型,可以存储整数与浮点数,存储浮点数不需要在数字后添加f。double类型存储精度为小数点后15~16位。
四、bool类型
bool类型为布尔类型,仅存储true与false,用于逻辑判断。
五、string类型
string类型为字符串类型,用于存储字符串,字符串两边需要双引号。
六、char类型
char类型为字符类型,用于存储一个字符,字符两边需要单引号。字符串中可以存空字符串,但字符不能存储空。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//引用命名空间
namespace _2024_1_25 //项目名或命名空间
{class Program //Program类{static void Main(string[] args) //Main函数是程序主入口{int intType = 100;/*int类型为整数类型,只能存数整数,不能存储浮点数。int类型取值范围为-2 147 483 648到2 147 483 647*/float floatTypeA = 1.00f;float floatTypeB = 100;/*float类型为双精度浮点数类型,可以存储整数与浮点数,存储浮点数需要在数字后添加f。float类型存储精度为小数点后7位。*/double doubleTypeA = 3.141592653;double doubleTypeB = 100;/*double类型为双精度浮点数类型,可以存储整数与浮点数,存储浮点数不需要在数字后添加f。double类型存储精度为小数点后15~16位。*/bool boolType = true;/*bool类型为布尔类型,仅存储true与false,用于逻辑判断。*/string gameName = "PVZ_BT";/*string类型为字符串类型,用于存储字符串,字符串两边需要双引号。*/char charType = 'a';/*char类型为字符类型,用于存储一个字符,字符两边需要单引号。字符串中可以存空字符串,但字符不能存储空。*/}}
}
数据类型转换
一、隐式类型转换
隐式转换是指将一个较小范围的数据类型转换为较大范围的数据类型时,编译器会自动完成类型转换,这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。
例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。将一个 byte 类型的变量赋值给 int 类型的变量,编译器会自动将 byte 类型转换为 int 类型,不需要显示转换。
将一个整数赋值给一个长整数,或者将一个浮点数赋值给一个双精度浮点数,这种转换不会导致数据丢失。
byte b = 10;
int i = b; // 隐式转换,不需要显式转换
int intValue = 42;
long longValue = intValue; // 隐式转换,从 int 到 long
二、显式类型转换(强制类型转换)
显式类型转换,即强制类型转换。
显式转换是指将一个较大范围的数据类型转换为较小范围的数据类型时,或者将一个对象类型转换为另一个对象类型时,需要使用强制类型转换符号进行显示转换,强制转换可能会造成数据丢失。
int i = 10;
byte b = (byte)i; // 显式转换,需要使用强制类型转换符号
double doubleValue = 3.14;
int intValueA = (int)doubleValue; // 强制从 double 到 int,数据可能损失小数部分
int intValueB = 42;
float floatValue = (float)intValueB; // 强制从 int 到 float,数据可能损失精度
int intValueC = 123;
string stringValue = intValueC.ToString(); // 将 int 转换为字符串
下面是一个强制类型转换的实例:
using System;namespace TypeConversionApplication
{class ExplicitConversion{static void Main(string[] args){double d = 5673.74;int i;// 强制转换 double 为 inti = (int)d;Console.WriteLine(i);Console.ReadKey();}}
}
程序最终会输出:
5673
三、Convert类型转换方法
上面两种类型转换方法都只适用于相兼容类型的类型转换,而对于获取不兼容类型,例如将字符串转换为int型数据,就需要使用Convert类型转换方法。常见Convert类型转换方法如下:
- ToBoolean:如果可能的话,把类型转换为布尔型。
- ToByte:把类型转换为字节类型。
- ToChar:如果可能的话,把类型转换为单个 Unicode 字符类型。
- ToDouble:把类型转换为双精度浮点型。
- ToSingle:把bool类型或字符串类型转换为单精度浮点数类型。
- ToInt16/ToInt32/ToInt64:把类型转换为 16/32/64 位整数类型。
- ToUInt16/ToUInt32/ToUInt64:把类型转换为 16/32/64 位无符号整数类型。
- ToString:把类型转换为字符串类型。
下面是一个Convert类型转换实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//引用命名空间
namespace _2024_1_25 //项目名或命名空间
{class Program //Program类{static void Main(string[] args) //Main函数是程序主入口{double pi = 3.141592654;Console.WriteLine(pi);float piFloat = Convert.ToSingle("2.14") + 1;Console.WriteLine(piFloat);Console.ReadKey();}}
}
最终输出:
3.141592654
3.14