第三章 C#语言基础
一、C#程序构成
1.1 C#程序的组成要素
C#程序主要由以下几部分组成:
- 源文件:C#程序的源代码文件通常以.cs为扩展名。
- 命名空间:用于组织代码的逻辑分组。
- 类:定义对象的数据和行为。
- 方法:执行特定任务的代码块。
- 变量:存储数据的容器。
- 常量:值不会改变的数据。
// 示例:简单的C#程序
using System;
namespace MyNamespace
{
class MyClass
{
static void Main()
{
Console.WriteLine("Hello, World!");
}
}
}
1.2 C#程序的格式
C#程序的格式遵循以下规则:
- 大括号:定义代码块的开始和结束。
- 分号:语句的结束符。
- 命名约定:通常使用PascalCase(帕斯卡命名法)为类命名,camelCase(驼峰命名法)为方法和属性命名。
- 注释:使用//进行单行注释,使用/* … */进行多行注释。
// 示例:C#程序格式
class Program
{
static void Main()
{
// 单行注释
/*
多行注释
*/
Console.WriteLine("Hello, World!");
}
}
1.3 标识符与用法约定
标识符用于命名变量、类、方法等。以下是一些约定:
- 变量:使用小驼峰式命名(camelCase)。
- 常量:使用大写字母和下划线分隔(PASCAL_CASE)。
- 类:使用帕斯卡命名法(PascalCase)。
- 方法:使用小驼峰式命名(camelCase)。
// 示例:标识符命名约定
class MyClass
{
private int myVariable;
private const int MY_CONSTANT = 42;
public void MyMethod()
{
// ...
}
}
二、变量和常量
2.1 变量的含义
- 变量是程序中存储数据的容器,可以在程序执行过程中改变其值。
2.2 变量声明
- 变量声明包括指定变量的类型和名称。
// 示例:变量声明
int myNumber;
string myString;
bool myBoolean;
2.3 常量
- 常量是程序中一旦赋值后其值就不能改变的数据。
// 示例:常量声明
const double PI = 3.14159;
2.4 应用实例
- 以下是使用变量和常量的简单示例。
private void button1_Click(object sender, EventArgs e)
{
double v, t, d;
v = double.Parse(textBox1.Text);
t = double.Parse(textBox2.Text);
d = v * t;
label6.Text =""+d+"";
}
三、常用数据类型
3.1 数值类型
数值类型用于存储数值数据,包括整数和浮点数。
3.1.1 整型
整型用于存储没有小数部分的数值。
byte
:无符号8位整数,范围从0到255。sbyte
:有符号8位整数,范围从-128到127。short
:有符号16位整数,范围从-32768到32767。ushort
:无符号16位整数,范围从0到65535。int
:有符号32位整数,默认的整数类型,范围从-2147483648到2147483647。uint
:无符号32位整数,范围从0到4294967295。long
:有符号64位整数,范围从-9223372036854775808到9223372036854775807。ulong
:无符号64位整数,范围从0到18446744073709551615。
// 示例:整型
byte myByte = 255;
sbyte mySByte = -128;
short myShort = 32767;
ushort myUShort = 65535;
int myInt = -1;
uint myUInt = 4294967295;
long myLong = 9223372036854775807;
ulong myULong = 18446744073709551615;
3.1.2 浮点型
浮点型用于存储有小数部分的数值。
float
:单精度浮点数,通常用于存储小数。double
:双精度浮点数,精度更高,通常用于科学计算。decimal
:高精度小数,用于需要高精度的金融计算。
// 示例:浮点型
float myFloat = 3.14f; // 注意:浮点字面量后加f表示float类型
double myDouble = 3.14;
decimal myDecimal = 1.05m; // 注意:十进制字面量后加m表示decimal类型
3.2 字符和字符串类型
3.2.1 字符类型
字符类型用于存储单个字符。
char
:表示单个16位Unicode字符。
// 示例:字符类型
char myChar = 'A';
char myUnicodeChar = '\u03A9'; // 表示希腊字母大写的Omega
3.2.2 字符串类型
字符串类型用于存储字符序列。
string
:表示可变长度的Unicode字符序列。
// 示例:字符串类型
string myString = "Hello, World!";
string myConcatenatedString = "Hello, " + "World!";
3.3 布尔类型和对象类型
3.3.1 布尔类型
布尔类型用于逻辑判断。
bool
:表示逻辑值true
或false
。
// 示例:布尔类型
bool isFinished = false;
bool isTrue = true;
3.3.2 对象类型
对象类型是所有类的基类。
object
:所有数据类型的基类,用于泛型编程和多态。
// 示例:对象类型
object myObject = 42; // 可以是任何类型
3.4 枚举类型
枚举类型是一种特殊的值类型,它由一组预定义的常量组成。
// 示例:枚举类型
enum Day
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
Day today = Day.Friday;
3.5 引用类型
引用类型在堆上分配内存,用于存储复杂的数据结构。
// 示例:引用类型
List<int> myList = new List<int> { 1, 2, 3 };
string[] myArray = new string[] { "apple", "banana", "cherry" };
3.6 类型转换
类型转换分为隐式转换和显式转换。
3.6.1 隐式转换
隐式转换是指在赋值或计算时,编译器自动进行的类型转换。
// 示例:隐式转换
int myInt = 5;
long myLong = myInt; // 自动转换为long类型
3.6.2 显式转换
显式转换需要使用强制类型转换运算符。
// 示例:显式转换
double myDouble = 5.5;
int myInt = (int)myDouble; // 强制转换为int类型
四、C#语言的运算符和表达式
4.1 运算符与表达式类型
在C#中,运算符是用于执行程序代码中操作的特殊符号,而表达式则是由变量、值、运算符和方法调用组成的代码片段。
4.1.1 运算符类型
C#提供了多种运算符,用于执行不同的操作:
-
算术运算符:用于执行数学计算。
+
:加法-
:减法*
:乘法/
:除法%
:取模(求余)++
:自增--
:自减
-
关系运算符:用于比较两个值。
==
:等于!=
:不等于>
:大于<
:小于>=
:大于等于<=
:小于等于
-
逻辑运算符:用于布尔逻辑运算。
&&
:逻辑与||
:逻辑或!
:逻辑非
-
赋值运算符:用于赋值操作。
=
:赋值+=
:加法赋值-=
:减法赋值*=
:乘法赋值/=
:除法赋值%=
:取模赋值
-
位运算符:用于在二进制级别上操作整数。
&
:位与|
:位或^
:位异或~
:位非<<
:左移>>
:右移
-
其他运算符:如三元运算符、索引运算符等。
// 示例:运算符的使用
int a = 10;
int b = 5;
int addition = a + b; // 算术运算符
int subtraction = a - b; // 算术运算符
int multiplication = a * b; // 算术运算符
int division = a / b; // 算术运算符
int modulus = a % b; // 算术运算符
bool isEqual = a == b; // 关系运算符
bool isNotEqual = a != b; // 关系运算符
bool isGreaterThan = a > b; // 关系运算符
bool andLogical = true && false; // 逻辑运算符
bool orLogical = true || false; // 逻辑运算符
bool notLogical = !isEqual; // 逻辑运算符
a += 5; // 赋值运算符
b *= 2; // 赋值运算符
4.1.2 表达式类型
表达式是C#中可以产生值的代码片段。表达式可以包含:
- 字面量:如
10
、3.14
、"Hello"
。 - 变量:如
a
、b
。 - 方法调用:如
Math.Sqrt(a)
。 - 运算符:如
+
、-
、*
、/
。 - 括号:用于改变运算顺序。
// 示例:表达式
int result = (a + b) * (a - b); // 包含括号和运算符的表达式
string greeting = "Hello, " + "World!"; // 包含字符串连接的表达式
4.2 运算符的优先级与结合性
4.2.1 优先级
运算符的优先级决定了在没有括号的情况下表达式中运算符的计算顺序。
- 括号:
()
- 成员访问:
.
、->
- 增量/减量:
++
、--
- 一元运算符:
+
、-
、!
、~
- 乘法和除法:
*
、/
、%
- 加法和减法:
+
、-
- 关系运算符:
<
、>
、<=
、>=
- 等于性:
==
、!=
- 逻辑AND:
&&
- 逻辑OR:
||
- 赋值运算符:
=
、+=
、-=
、*=
、/=
、%=
// 示例:优先级
int x = 10;
int y = 20;
int result = x + y * 2; // 先乘法后加法,result = 40
4.2.2 结合性
结合性决定了相同优先级的运算符如何组合在一起。
- 左结合性:从左到右计算。
- 右结合性:从右到左计算。
大多数运算符在C#中是左结合性的,除了赋值运算符和lambda表达式中的=>
是右结合性的。
// 示例:结合性
int a = 1;
int b = 2;
int c = 3;
int result = a + (b + c); // 左结合性,result = 6
原文地址:https://blog.csdn.net/weixin_49345320/article/details/142489190
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!