云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C#基础知识点

C#基础知识点

  • 62 次阅读
  • 3 次下载
  • 2026/4/27 6:20:38

C# 基础知识点

1、 数据类型

1.1、 值类型、引用类型 1.2、 预定义类型 1.3、 类型转换 1.4、 装箱和拆箱 2、 变量、常量

2.1、变量 2.2、常量

3、 运算符和表达式

3.1、运算符、表达式 3.2、特殊运算符 3.3、优先级别 4、 流程控制

4.1、条件语句 4.2、循环语句 4.3、跳转语句 4.4、异常处理 5、 程序结构

5.1、类

5.2、命名空间 5.3、Main方法 6、程序例子 7、作业

一 数据类型

1.1 值类型、引用类型

C# 的数据类型可以分成两大部分:值类型和引用类型。

值类型的变量总是直接包含着自身的数据,而引用类型的变量是指向实际数据的地址。 C# 值类型包括:整型、布尔型、实型、十进制型、结构和枚举、接口和数组。

从概念上看,其区别是值类型直接存储其值,而引用类型存储对值的引用。这两种类型存储在内存的不同地方:值类型存储在堆栈中,而引用类型存储在托管堆上。注意区分某个类型是值类型还是引用类型,因为这种存储位置的不同会有不同的影响。例如,int是值类型,这表示下面的语句会在内存的两个地方存储值20: // i 和j都是整型变量

i = 20; j = i;

但考虑下面的代码。这段代码假定已经定义了一个类class1,class1是一个引用类型,它有一个int类型的成员变量Value:

class1 x, y

x = new class1 (); x.Value = 30; y = x;

Console.WriteLine(y.Value);//输出30 y.Value = 50;

Console.WriteLine(x.Value);//输出50

要理解的重要一点是在执行这段代码后,只有一个class1对象。x和y都指向包含该对象的内存位置。因为x和y是引用类型的变量,声明这两个变量只是保留了一个引用——而不会实例化给定类型的对象。因为x和y引用同一个对象,所以对x的修改会影响y,反之亦然。因此上面的代码会显式30和50。

如果变量是一个引用,就可以把其值设置为null,确定它不引用任何对象: y = null;

在C#中,基本数据类型如bool和long都是值类型。如果声明一个bool变量,并给它赋予另一个bool变量的值,在内存中就会有两个bool值。如果以后修改第一个bool变量的值,第二个bool变量的值也不会改变。这些类型是通过值来复制的。相反,大多数更复杂的C#数据类型,包括我们自己声明的类都是引用类型。它们分配在堆中,其生存期可以跨多个函数调用,可以通过一个或几个别名来访问。CLR(Common Language Runtime公共语言运行库指.NET的运行时支持,包括一个面向对象类型系统和一些运行时服务)执行一种精细的算法来跟踪哪些引用变量仍是可以访问的,哪些引用变量已经不能访问了。CLR会定期进行清理,删除不能访问的对象,把它们占用的内存返回给操作系统。这是通过垃圾收集器实现的。

1.2 预定义类型

C#认可的基本预定义类型并没有内置于语言中,而是内置于.NET Framework中。例如,在C#中声明一个int类型的数据时,声明的实际上是.NET结构System.Int32的一个实例。C#支持两个预定义的引用类型,如下表:

CTS:公共类型系统 名 称 Object String CTS 类 System.Object System.String 说 明 根类型,其他类型都是从它派生而来的(包括值类型) Unicode字符串

1. object类型

在C#中,object类型就是最终的父类型,所有内在和用户定义的类型都从它派生而来。这是C#的一个重要特性, object类型就可以用于两个目的:

● 可以使用object引用绑定任何特定子类型的对象。 ● object类型执行许多基本的一般用途的方法,包括Equals()、GetHashCode()、GetType()和ToString()。用户定义的类可能需要使用一种面向对象技术—— 重写,提供其中一些方法的替代执行方法。例如,重写ToString()时,要给类提供一个方法,该方法可

以提供类本身的字符串表示。如果类中没有提供这些方法的实现,编译器就会在对象中选择这些实现,它们在类中的执行不一定正确。

2. string类型

C#有string关键字,在翻译为.NET类时,它就是System.string。有了它,像字符串连接和字符串复制这样的操作就很简单了: string str1 = \

string str2 = \

string str3 = str1 + str2; // 字符串连接

尽管这是一个值类型的赋值,但string是一个引用类型。String对象保留在堆上,而不是堆栈上。因此,当把一个字符串变量赋给另一个字符串时,会得到对内存中同一个字符串的两个引用。但是,string与引用类型在常见的操作上有一些区别。例如,修改其中一个字符串,注意这会创建一个全新的string对象,而另一个字符串没有改变。考虑下面的代码: using System;

class StringExample {

public static int Main() {

string s1 = \ string s2 = s1;

Console.WriteLine(\ Console.WriteLine(\ s1 = \

Console.WriteLine(\ Console.WriteLine(\ return 0; }

}

其输出结果为:

s1 is a string s2 is a string

s1 is now another string s2 is now a string

换言之,改变s1的值对s2没有影响,这与我们期待的引用类型正好相反。

1.3类型转换

1.隐式转换

隐式转换就是系统默认的、不需要加以声明就可以进行的转换。 隐式转换一般不会失败,转换过程中也不会导致信息丢失。 隐式转换包括下面几种:

2.显式转换

显式类型转换,就是强制类型转换。与隐式转换正好相反,显式转换需要用户明确指定转换的类型,不如看下面例子: long l = 5000; int I = (int)l;

显式转换可以发生在表达式的计算过程中。它并不是总能成功,而且常常可能引起信息丢失。显式转换包括所有的隐式转换。 显式转换包括下面几种:

1.4 装箱和拆箱

装箱和拆箱使我们可以把一个值类型当作一个引用类型看待。装箱转换是指将一个值类型隐式的转换成一个Object类型,拆箱转换是指将一个Object类型显式地转换成一个值类型,他们互为逆过程。

装箱(boxing)

装箱转换是指将一个值类型隐式转换成一个object类型,或者把这个值类型转换成一个被该值类型应用的接口类型。把一个值类型的值装箱,也就是创建一个object实例并将这个值给这个objet.不如:

搜索更多关于: C#基础知识点 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

C# 基础知识点 1、 数据类型 1.1、 值类型、引用类型 1.2、 预定义类型 1.3、 类型转换 1.4、 装箱和拆箱 2、 变量、常量 2.1、变量 2.2、常量 3、 运算符和表达式 3.1、运算符、表达式 3.2、特殊运算符 3.3、优先级别 4、 流程控制 4.1、条件语句 4.2、循环语句 4.3、跳转语句 4.4、异常处理 5、 程序结构 5.1、类 5.2、命名空间 5.3、Main方法 6、程序例子 7、作业 一 数据类型 1.1 值类型、引用类型 C# 的数据类型可以分成两大部分:值类型和引用类型。 值类型的变量总是直接包含着自身的数据,而引用类型的变量是指向实际数据的地址。 C# 值

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com