2022年最新C#入门教程详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022年最新C#入门教程详解相关的知识,希望对你有一定的参考价值。


C# 简介

C# 是一个面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的。C# 是专为公共语言基础结构(CLI)设计的。CLI 由可执行代码和运行时环境组成,允许在不同的计算机平台和体系结构上使用各种高级语言。


C#的特点:

  1. 面向对象。
  2. 面向组件。
  3. 它产生高效率的程序。
  4. 它可以在多种计算机平台上编译。
  5. .Net 框架的一部分。

C# 强大的编程功能

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

  • 布尔条件(Boolean Conditions)
  • 自动垃圾回收(Automatic Garbage Collection)
  • 标准库(Standard Library)
  • 组件版本(Assembly Versioning)
  • 属性(Properties)和事件(Events)
  • 委托(Delegates)和事件管理(Events Management)
  • 易于使用的泛型(Generics)
  • 索引器(Indexers)
  • 条件编译(Conditional Compilation)
  • 简单的多线程(Multithreading)
  • LINQ 和 Lambda 表达式
  • 集成 Windows

C# 环境

在这一章中,我们将讨论创建 C# 编程所需的工具。我们已经提到 C# 是 .Net 框架的一部分,且用于编写 .Net 应用程序。因此,在讨论运行 C# 程序的可用工具之前,让我们先了解一下 C# 与 .Net 框架之间的关系。

.Net 框架(.Net Framework)

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

  • Windows 应用程序
  • Web 应用程序
  • Web 服务

.Net 框架应用程序是多平台的应用程序。框架的设计方式使它适用于下列各种语言:C#、C++、Visual Basic、Jscript、COBOL 等等。所有这些语言可以访问框架,彼此之间也可以互相交互
.Net 框架由一个巨大的代码库组成,用于 C# 等客户端语言。下面列出一些 .Net 框架的组件:

  • 公共语言运行库(Common Language Runtime - CLR)
  • .Net 框架类库(.Net Framework Class Library)
  • 公共语言规范(Common Language Specification)
  • 元数据(Metadata)和组件(Assemblies)
  • Windows 窗体(Windows Forms)
  • Windows 通信基础(Windows Communication Foundation - WCF)
  • LINQ
  • 其他等等

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

C# 的集成开发环境(Integrated Development Environment - IDE)

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

2022年最新C#入门教程详解_类型转换

2022年最新C#入门教程详解_c#_02

在 Linux 或 Mac OS 上编写 C# 程序

虽然 .NET 框架是运行在 Windows 操作系统上,但是也有一些运行于其它操作系统上的版本可供选择。Mono 是 .NET 框架的一个开源版本,它包含了一个 C# 编译器,且可运行于多种操作系统上,比如各种版本的 Linux 和 Mac OS。




下载地址:​​https://www.mono-project.com/download/stable/​

2022年最新C#入门教程详解_类型转换_03

C# 程序结构

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

C# Hello World 实例

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

  • 命名空间声明(Namespace declaration)
  • 一个 class
  • Class 方法
  • Class 属性
  • 一个 Main 方法
  • 语句(Statements)& 表达式(Expressions)
  • 注释

C# 文件的后缀为 .cs
以下创建一个HelloWorld.cs 文件,文件包含了可以打印出 “Hello World” 的简单代码:

using System;
namespace HelloWorldApplication

class HelloWorld

static void Main(string[] args)

/* 我的第一个 C# 程序*/
Console.WriteLine("Hello World");
Console.ReadKey();


以下几点值得注意:

  • C# 是大小写敏感的。
  • 方法首字母通常大写,这点跟java是不一样的。
  • 所有的语句和表达式必须以分号(;)结尾。
  • 程序的执行从 Main 方法开始。
  • 与 Java 不同的是,文件名可以不同于类的名称。

C# 基本语法

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

using System;
namespace CarApplication

class Car

// 成员变量
string color;
double price;

public void Run()

Console.WriteLine("车已经动起来了");



class ExecuteCar

static void Main(string[] args)

CarApplication car = new CarApplication();
car.Run();
Console.ReadLine();



using 关键字

在任何 C# 程序中的第一条语句都是:
using System;
using 关键字用于在程序中包含命名空间。一个程序可以包含多个 using 语句。

class 关键字


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

C# 中的注释

注释是用于解释代码。编译器会忽略注释的条目。在 C# 程序中,多行注释以 /* 开始,并以字符 / 终止,如下所示:
/
This program demonstrates The basic syntax of C# programming Language */

单行注释是用 ‘//’ 符号表示。例如:

//end class Rectangle

成员变量

变量是类的属性或数据成员,用于存储数据。在上面的程序中,Rectangle 类有两个成员变量,名为 lengthwidth

成员函数

函数是一系列执行指定任务的语句。类的成员函数是在类内声明的。我们举例的类 Rectangle 包含了三个成员函数:_ AcceptDetails_、GetAreaDisplay

C# 关键字

关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。
在 C# 中,有些关键字在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字(contextual keywords)。

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

保留关键字

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# 中,变量分为以下几种类型:

  • 值类型(Value types)
  • 引用类型(Reference types)
  • 指针类型(Pointer types)

值类型(Value types)

值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。

值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类型时,系统分配内存来存储值。

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

2022年最新C#入门教程详解_C#入门教程_04

如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 方法。表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸。下面举例获取任何机器上 int 类型的存储尺寸:

using System;

namespace DataTypeApplication

class Program

static void Main(string[] args)

Console.WriteLine("Size of int: 0", sizeof(int));
Console.ReadLine();



引用类型(Reference types)

引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。
换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的 引用类型有:objectdynamicstring

对象(Object)类型


对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。Object 是 System.Object 类的别名。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。

当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱
object obj; obj = 100; // 这是装箱

动态(Dynamic)类型

您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。
声明动态类型的语法:
dynamic <variable_name> = value;
例如:
dynamic d = 20;

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

字符串(String)类型

字符串(String)类型 允许您给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。


指针类型(Pointer types)

指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。
声明指针类型的语法:
type* identifier;
例如:
char* cptr; int* iptr;


C# 类型转换

类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。在 C# 中,类型铸造有两种形式:

  • 隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
  • 显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。

下面的实例显示了一个显式的类型转换:

namespace TypeConversionApplication

class ExplicitConversion

static void Main(string[] args)

double d = 5673.74;
int i;

// 强制转换 double 为 int
i = (int)d;
Console.WriteLine(i);
Console.ReadKey();






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 位无符号整数类型。


C# 变量

一个变量只不过是一个供程序操作的存储区的名字。在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局。范围内的值可以存储在内存中,可以对变量进行一系列操作。
我们已经讨论了各种数据类型。C# 中提供的基本的值类型大致可以分为以下几类:

类型

举例

整数类型

sbyte、byte、short、ushort、int、uint、long、ulong 和 char

浮点型

float 和 double

十进制类型

decimal

布尔类型

true 或 false 值,指定的值

空类型

可为空值的数据类型

C# 允许定义其他值类型的变量,比如 enum,也允许定义引用类型变量,比如 class。这些我们将在以后的章节中进行讨论。在本章节中,我们只研究基本变量类型。

C# 中的变量定义

C# 中变量定义的语法:

<data_type> <variable_list>;

在这里,data_type 必须是一个有效的 C# 数据类型,可以是 char、int、float、double 或其他用户自定义的数据类型。variable_list 可以由一个或多个用逗号分隔的标识符名称组成。

一些有效的变量定义如下所示:

int i, j, k; char c, ch; float f, salary; double d;

您可以在变量定义时进行初始化:

int i = 100;


C# 中的变量初始化

变量通过在等号后跟一个常量表达式进行初始化(赋值)。初始化的一般形式为:

variable_name = value;

变量可以在声明时被初始化(指定一个初始值)。初始化由一个等号后跟一个常量表达式组成,如下所示:

<data_type> <variable_name> = value;

一些实例:

int d = 3, f = 5;    /* 初始化 d 和 f. */
byte z = 22; /* 初始化 z. */
double pi = 3.14159; /* 声明 pi 的近似值 */
char x = x; /* 变量 x 的值为 x */



C# 常量



定义:

常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。

常量可以被当作常规的变量,只是它们的值在定义后不能被修改。

整数常量

整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制。
整数常量也可以有后缀,可以是 U 和 L 的组合,其中,U 和 L 分别表示 unsigned 和 long。后缀可以是大写或者小写,多个后缀以任意顺序进行组合。

这里有一些整数常量的实例:
212 /* 合法 / 215u / 合法 / 0xFeeL / 合法 / 078 / 非法:8 不是一个八进制数字 / 032UU / 非法:不能重复后缀 */

以下是各种类型的整数常量的实例:
85 /* 十进制 / 0213 / 八进制 / 0x4b / 十六进制 / 30 / int / 30u / 无符号 int / 30l / long / 30ul / 无符号 long */

浮点常量

一个浮点常量是由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量。
这里有一些浮点常量的实例:

3.14159 /* 合法 / 314159E-5L / 合法 / 510E / 非法:不完全指数 / 210f / 非法:没有小数或指数 / .e55 / 非法:缺少整数或小数 */

使用浮点形式表示时,必须包含小数点、指数或同时包含两者。使用指数形式表示时,必须包含整数部分、小数部分或同时包含两者。有符号的指数是用 e 或 E 表示的。

字符常量

字符常量是括在单引号里,例如,‘x’,且可存储在一个简单的字符类型变量中。一个字符常量可以是一个普通字符(例如 ‘x’)、一个转义序列(例如 ‘\\t’)或者一个通用字符(例如 ‘\\u02C0’)。

在 C# 中有一些特定的字符,当它们的前面带有反斜杠时有特殊的意义,可用于表示换行符(\\n)或制表符 tab(\\t)。在这里,列出一些转义序列码:

转义序列

含义

\\\\

\\ 字符

\\’

’ 字符

\\"

" 字符

\\?

? 字符

\\a

Alert 或 bell

\\b

退格键(Backspace)

\\f

换页符(Form feed)

\\n

换行符(Newline)

\\r

回车

\\t

水平制表符 tab

\\v

垂直制表符 tab

\\ooo

一到三位的八进制数

\\xhh . . .

一个或多个数字的十六进制数


字符串常量

字符串常量是括在双引号 “” 里,或者是括在 @"" 里。字符串常量包含的字符与字符常量相似,可以是:普通字符、转义序列和通用字符
使用字符串常量时,可以把一个很长的行拆成多个行,可以使用空格分隔各个部分。
这里是一些字符串常量的实例。下面所列的各种形式表示相同的字符串。

string a = "hello, world";                  // hello, world
string b = @"hello, world"; // hello, world
string c = "hello \\t world"; // hello world
string d = @"hello \\t world"; // hello \\t world
string e = "Joe said \\"Hello\\" to me"; // Joe said "Hello" to me
string f = @"Joe said ""Hello"" to me"; // Joe said "Hello" to me
string g = "\\\\\\\\server\\\\share\\\\file.txt"; // \\\\server\\share\\file.txt
string h = @"\\\\server\\share\\file.txt"; // \\\\server\\share\\file.txt
string i = "one\\r\\ntwo\\r\\nthree";
string j = @"one
two
three";


定义常量

常量是使用 const 关键字来定义的 。定义一个常量的语法如下:

const <data_type> <constant_name> = value;




C# 运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C# 有丰富的内置运算符,分类如下:

算术运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
其他运算符


算术运算符

运算符

描述

+

把两个操作数相加

-

从第一个操作数中减去第二个操作数

*

把两个操作数相乘

/

分子除以分母

%

取模运算符,整除后的余数

++

自增运算符,整数值增加 1


自减运算符,整数值减少 1


关系运输符

运算符

描述

==

检查两个操作数的值是否相等,如果相等则条件为真。

!=

检查两个操作数的值是否相

以上是关于2022年最新C#入门教程详解的主要内容,如果未能解决你的问题,请参考以下文章

javaCV开发详解之8:转封装在rtsp转rtmp流中的应用(无须转码,更低的资源消耗)

工程机械核心部件寿命预测前三名方案总结与2022年最新方案分享(万文详解)

阿尔茨海默综合症预测前三名方案总结与2022年最新方案分享(万文详解)

web3开发DApp项目技术入门教程(2022年最新)

jdk安装配置教程2022年12月最新版

jdk安装配置教程2022年12月最新版

(c)2006-2024 SYSTEM All Rights Reserved IT常识