C# 知识点整理总结.docx

上传人:b****6 文档编号:6121151 上传时间:2023-01-04 格式:DOCX 页数:270 大小:259.23KB
下载 相关 举报
C# 知识点整理总结.docx_第1页
第1页 / 共270页
C# 知识点整理总结.docx_第2页
第2页 / 共270页
C# 知识点整理总结.docx_第3页
第3页 / 共270页
C# 知识点整理总结.docx_第4页
第4页 / 共270页
C# 知识点整理总结.docx_第5页
第5页 / 共270页
点击查看更多>>
下载资源
资源描述

C# 知识点整理总结.docx

《C# 知识点整理总结.docx》由会员分享,可在线阅读,更多相关《C# 知识点整理总结.docx(270页珍藏版)》请在冰豆网上搜索。

C# 知识点整理总结.docx

C#知识点整理总结

C# 教程

C#是一个简单的、现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的。

本教程将告诉您基础的C#编程,同时将向您讲解C#编程语言相关的各种先进理念。

谁适合阅读本教程?

本教程有助于初学者理解基础的C#编程。

在学习完本教程后,您将到达一个中级的C#编程水平。

阅读本教程前,您需要了解的知识:

C#编程是基于C和C++编程语言的,因此如果您对C和C++编程有基本的了解,将有助于您学习C#编程语言。

编译/执行C#程序

菜鸟教程提供了在线的C#在线编译环境,您只需进行简单的点击动作,即可在高端的服务器上体验真实的编程经验。

这是完全免费的在线工具。

实例

usingSystem;

namespaceHelloWorldApplication

{

    classHelloWorld

    {

        staticvoidMain(string[]args)

        {

            /*我的第一个C#程序*/

            Console.WriteLine("HelloWorld!

");

            Console.ReadKey();

        }

    }

}

运行实例»

C#有用的资源

本教程列出了C#网站、书籍和文章。

C#有用的网站

∙C#ProgrammingGuide -介绍了有关关键的C#语言特征以及如何通过.NET框架访问C#的详细信息。

∙VisualStudio -下载作为C#集成开发环境的VisualStudio的最新版本。

∙GoMono -Mono是一个允许开发人员简单地创建跨平台应用程序的软件平台。

∙CSharp(programminglanguage) -维基百科解释C#(编程语言)。

C# 简介

C#是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由Ecma和ISO核准认可的。

C#是由AndersHejlsberg和他的团队在.Net框架开发期间开发的。

C#是专为公共语言基础结构(CLI)设计的。

CLI由可执行代码和运行时环境组成,允许在不同的计算机平台和体系结构上使用各种高级语言。

下面列出了C#成为一种广泛应用的专业语言的原因:

∙现代的、通用的编程语言。

∙面向对象。

∙面向组件。

∙容易学习。

∙结构化语言。

∙它产生高效率的程序。

∙它可以在多种计算机平台上编译。

∙.Net框架的一部分。

C#强大的编程功能

虽然C#的构想十分接近于传统高级语言C和C++,是一门面向对象的编程语言,但是它与Java非常相似,有许多强大的编程功能,因此得到广大程序员的亲睐。

下面列出C#一些重要的功能:

∙布尔条件(BooleanConditions)

∙自动垃圾回收(AutomaticGarbageCollection)

∙标准库(StandardLibrary)

∙组件版本(AssemblyVersioning)

∙属性(Properties)和事件(Events)

∙委托(Delegates)和事件管理(EventsManagement)

∙易于使用的泛型(Generics)

∙索引器(Indexers)

∙条件编译(ConditionalCompilation)

∙简单的多线程(Multithreading)

∙LINQ和Lambda表达式

∙集成Windows

C# 环境

在这一章中,我们将讨论创建C#编程所需的工具。

我们已经提到C#是.Net框架的一部分,且用于编写.Net应用程序。

因此,在讨论运行C#程序的可用工具之前,让我们先了解一下C#与.Net框架之间的关系。

.Net框架(.NetFramework)

.Net框架是一个创新的平台,能帮您编写出下面类型的应用程序:

∙Windows应用程序

∙Web应用程序

∙Web服务

.Net框架应用程序是多平台的应用程序。

框架的设计方式使它适用于下列各种语言:

C#、C++、VisualBasic、Jscript、COBOL等等。

所有这些语言可以访问框架,彼此之间也可以互相交互。

.Net框架由一个巨大的代码库组成,用于C#等客户端语言。

下面列出一些.Net框架的组件:

∙公共语言运行库(CommonLanguageRuntime-CLR)

∙.Net框架类库(.NetFrameworkClassLibrary)

∙公共语言规范(CommonLanguageSpecification)

∙通用类型系统(CommonTypeSystem)

∙元数据(Metadata)和组件(Assemblies)

∙Windows窗体(WindowsForms)

∙ASP.Net和ASP.NetAJAX

∙ADO.Net

∙Windows工作流基础(WindowsWorkflowFoundation-WF)

∙Windows显示基础(WindowsPresentationFoundation)

∙Windows通信基础(WindowsCommunicationFoundation-WCF)

∙LINQ

如需了解每个组件的详细信息,请参阅微软(Microsoft)的文档。

C#的集成开发环境(IntegratedDevelopmentEnvironment-IDE)

微软(Microsoft)提供了下列用于C#编程的开发工具:

∙VisualStudio2010(VS)

∙VisualC#2010Express(VCE)

∙VisualWebDeveloper

后面两个是免费使用的,可从微软官方网址下载。

使用这些工具,您可以编写各种C#程序,从简单的命令行应用程序到更复杂的应用程序。

您也可以使用基本的文本编辑器(比如Notepad)编写C#源代码文件,并使用命令行编译器(.NET框架的一部分)编译代码为组件。

VisualC#Express和VisualWebDeveloperExpress版本是VisualStudio的定制版本,且具有相同的外观和感观。

它们保留VisualStudio的大部分功能。

在本教程中,我们使用的是VisualC#2010Express。

您可以从 MicrosoftVisualStudio 上进行下载。

它会自动安装在您的机器上。

请注意,您需要一个可用的网络连接来完成速成版的安装。

在Linux或MacOS上编写C#程序

虽然.NET框架是运行在Windows操作系统上,但是也有一些运行于其它操作系统上的版本可供选择。

Mono 是.NET框架的一个开源版本,它包含了一个C#编译器,且可运行于多种操作系统上,比如各种版本的Linux和MacOS。

如需了解更多详情,请访问 GoMono。

Mono的目的不仅仅是跨平台地运行微软.NET应用程序,而且也为Linux开发者提供了更好的开发工具。

Mono可运行在多种操作系统上,包括Android、BSD、iOS、Linux、OSX、Windows、Solaris和UNIX。

C# 程序结构

在我们学习C#编程语言的基础构件块之前,让我们先看一下C#的最小的程序结构,以便作为接下来章节的参考。

C#HelloWorld实例

一个C#程序主要包括以下部分:

∙命名空间声明(Namespacedeclaration)

∙一个class

∙Class方法

∙Class属性

∙一个Main方法

∙语句(Statements)&表达式(Expressions)

∙注释

让我们看一个可以打印出"HelloWorld"的简单的代码:

usingSystem;

namespaceHelloWorldApplication

{

classHelloWorld

{

staticvoidMain(string[]args)

{

/*我的第一个C#程序*/

Console.WriteLine("HelloWorld");

Console.ReadKey();

}

}

}

当上面的代码被编译和执行时,它会产生下列结果:

HelloWorld

让我们看一下上面程序的各个部分:

∙程序的第一行 usingSystem; - using 关键字用于在程序中包含 System 命名空间。

一个程序一般有多个 using 语句。

∙下一行是 namespace 声明。

一个 namespace 是一系列的类。

HelloWorldApplication 命名空间包含了类 HelloWorld。

∙下一行是 class 声明。

类 HelloWorld 包含了程序使用的数据和方法声明。

类一般包含多个方法。

方法定义了类的行为。

在这里,HelloWorld 类只有一个 Main 方法。

∙下一行定义了 Main 方法,是所有C#程序的 入口点。

Main 方法说明当执行时类将做什么动作。

∙下一行/*...*/将会被编译器忽略,且它会在程序中添加额外的 注释。

∙Main方法通过语句 Console.WriteLine("HelloWorld"); 指定了它的行为。

WriteLine 是一个定义在 System 命名空间中的 Console 类的一个方法。

该语句会在屏幕上显示消息"Hello,World!

"。

∙最后一行 Console.ReadKey(); 是针对VS.NET用户的。

这使得程序会等待一个按键的动作,防止程序从VisualStudio.NET启动时屏幕会快速运行并关闭。

以下几点值得注意:

∙C#是大小写敏感的。

∙所有的语句和表达式必须以分号(;)结尾。

∙程序的执行从Main方法开始。

∙与Java不同的是,文件名可以不同于类的名称。

编译&执行C#程序

如果您使用VisualStudio.Net编译和执行C#程序,请按下面的步骤进行:

∙启动VisualStudio。

∙在菜单栏上,选择File->New->Project。

∙从模板中选择VisualC#,然后选择Windows。

∙选择ConsoleApplication。

∙为您的项目制定一个名称,然后点击OK按钮。

∙新项目会出现在解决方案资源管理器(SolutionExplorer)中。

∙在代码编辑器(CodeEditor)中编写代码。

∙点击Run按钮或者按下F5键来运行程序。

会出现一个命令提示符窗口(CommandPromptwindow),显示HelloWorld。

您也可以使用命令行代替VisualStudioIDE来编译C#程序:

∙打开一个文本编辑器,添加上面提到的代码。

∙保存文件为 helloworld.cs。

∙打开命令提示符工具,定位到文件所保存的目录。

∙键入 cschelloworld.cs 并按下enter键来编译代码。

∙如果代码没有错误,命令提示符会进入下一行,并生成 helloworld.exe 可执行文件。

∙接下来,键入 helloworld 来执行程序。

∙您将看到"HelloWorld"打印在屏幕上。

C# 基本语法

C#是一种面向对象的编程语言。

在面向对象的程序设计方法中,程序由各种相互交互的对象组成。

相同种类的对象通常具有相同的类型,或者说,是在相同的class中。

例如,以Rectangle(矩形)对象为例。

它具有length和width属性。

根据设计,它可能需要接受这些属性值、计算面积和显示细节。

让我们来看看一个Rectangle(矩形)类的实现,并借此讨论C#的基本语法:

usingSystem;

namespaceRectangleApplication

{

classRectangle

{

//成员变量

doublelength;

doublewidth;

publicvoidAcceptdetails()

{

length=4.5;

width=3.5;

}

publicdoubleGetArea()

{

returnlength*width;

}

publicvoidDisplay()

{

Console.WriteLine("Length:

{0}",length);

Console.WriteLine("Width:

{0}",width);

Console.WriteLine("Area:

{0}",GetArea());

}

}

classExecuteRectangle

{

staticvoidMain(string[]args)

{

Rectangler=newRectangle();

r.Acceptdetails();

r.Display();

Console.ReadLine();

}

}

}

当上面的代码被编译和执行时,它会产生下列结果:

Length:

4.5

Width:

3.5

Area:

15.75

using 关键字

在任何C#程序中的第一条语句都是:

usingSystem;

using 关键字用于在程序中包含命名空间。

一个程序可以包含多个using语句。

class 关键字

class 关键字用于声明一个类。

C#中的注释

注释是用于解释代码。

编译器会忽略注释的条目。

在C#程序中,多行注释以/*开始,并以字符*/终止,如下所示:

/*Thisprogramdemonstrates

ThebasicsyntaxofC#programming

Language*/

单行注释是用'//'符号表示。

例如:

}//endclassRectangle

成员变量

变量是类的属性或数据成员,用于存储数据。

在上面的程序中,Rectangle 类有两个成员变量,名为 length 和 width。

成员函数

函数是一系列执行指定任务的语句。

类的成员函数是在类内声明的。

我们举例的类Rectangle包含了三个成员函数:

AcceptDetails、GetArea 和 Display。

实例化一个类

在上面的程序中,类 ExecuteRectangle 是一个包含 Main() 方法和实例化 Rectangle 类的类。

标识符

标识符是用来识别类、变量、函数或任何其它用户定义的项目。

在C#中,类的命名必须遵循如下基本规则:

∙标识符必须以字母开头,后面可以跟一系列的字母、数字(0-9)或下划线(_)。

标识符中的第一个字符不能是数字。

∙标识符必须不包含任何嵌入的空格或符号,比如?

-+!

@#%^&*()[]{}.;:

"'/\。

但是,可以使用下划线(_)。

∙标识符不能是C#关键字。

C#关键字

关键字是C#编译器预定义的保留字。

这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上@字符作为前缀。

在C#中,有些标识符在代码的上下文中有特殊的意义,如get和set,这些被称为上下文关键字(contextualkeywords)。

下表列出了C#中的保留关键字(ReservedKeywords)和上下文关键字(ContextualKeywords):

保留关键字

abstract

as

base

bool

break

byte

case

catch

char

checked

class

const

continue

decimal

default

delegate

do

double

else

enum

event

explicit

extern

false

finally

fixed

float

for

foreach

goto

if

implicit

in

in(generic

modifier)

int

interface

internal

is

lock

long

namespace

new

null

object

operator

out

out(generic

modifier)

override

params

private

protected

public

readonly

ref

return

sbyte

sealed

short

sizeof

stackalloc

static

string

struct

switch

this

throw

true

try

typeof

uint

ulong

unchecked

unsafe

ushort

using

virtual

void

volatile

while

上下文关键字

add

alias

ascending

descending

dynamic

from

get

global

group

into

join

let

orderby

partial

(type)

partial

(method)

remove

select

set

 

C# 数据类型

在C#中,变量分为以下几种类型:

∙值类型(Valuetypes)

∙引用类型(Referencetypes)

∙指针类型(Pointertypes)

值类型(Valuetypes)

值类型变量可以直接分配给一个值。

它们是从类 System.ValueType 中派生的。

值类型直接包含数据。

比如 int、char、float,它们分别存储数字、字母、浮点数。

当您声明一个 int 类型时,系统分配内存来存储值。

下表列出了C#2010中可用的值类型:

类型

描述

范围

默认值

bool

布尔值

True或False

False

byte

8位无符号整数

0到255

0

char

16位Unicode字符

U+0000到U+ffff

'\0'

decimal

128位精确的十进制值,28-29有效位数

(-7.9x1028 到7.9x1028)/100到28

0.0M

double

64位双精度浮点型

(+/-)5.0x10-324 到(+/-)1.7x10308

0.0D

float

32位单精度浮点型

-3.4x1038 到+3.4x1038

0.0F

int

32位有符号整数类型

-2,147,483,648到2,147,483,647

0

long

64位有符号整数类型

-923,372,036,854,775,808到9,223,372,036,854,775,807

0L

sbyte

8位有符号整数类型

-128到127

0

short

16位有符号整数类型

-32,768到32,767

0

uint

32位无符号整数类型

0到4,294,967,295

0

ulong

64位无符号整数类型

0到18,446,744,073,709,551,615

0

ushort

16位无符号整数类型

0到65,535

0

如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 方法。

表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸。

下面举例获取任何机器上 int 类型的存储尺寸:

namespaceDataTypeApplication{

classProgram

{

staticvoidMain(string[]args)

{

Console.WriteLine("Sizeofint:

{0}",sizeof(int));

Console.ReadLine();

}

}}

当上面的代码被编译和执行时,它会产生下列结果:

Sizeofint:

4

引用类型(Referencetypes)

引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。

换句话说,它们指的是一个内存位置。

使用多个变量时,引用类型可以指向一个内存位置。

如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。

内置的 引用类型有:

object、dynamic 和 string。

对象(Object)类型

对象(Object)类型 是C#通用类型系统(CommonTypeSystem-CTS)中所有数据类型的终极基类。

Object是System.Object类的别名。

所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。

但是,在分配值之前,需要先进行类型转换。

当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱。

objectobj;

obj=100;//这是装箱

动态(Dynamic)类型

您可以存储任何类型的值在动态数据类型变量中。

这些变量的类型检查是在运行时发生的。

声明动态类型的语法:

dynamic=value;

例如:

dynamicd=20;

动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。

字符串(String)类型

字符串(String)类型 允许您给变量分配任何字符串值。

字符串(String)类型是System.String类的别名。

它是从对象(Object)类型派生的。

字符串(String)类型的值可以通过两种形式进行分配:

引号和@引号。

例如:

Stringstr="w3cschool.cc";

一个@引号字符串:

@"w3cschool.cc";

C#string字符串的前面可以加@(称作"逐字字符串")将转义字符(\)当作普通字符对待,比如:

stringstr=@"C:

\Windows";

等价于:

stringstr="C:

\\Windows";

@字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内。

stringstr=@"

<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1