学习c#的第二天

news/2025/3/15 10:30:19/

目录

C# 基本语法

using 关键字

class 关键字

C# 中的注释

成员变量

成员函数

类的实例化

标识符

C# 关键字


C# 基本语法

C# 是一种面向对象的编程语言。在面向对象的程序设计方法中,程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型,或者说,是在相同的 class 中。

例如,以 Rectangle(矩形)对象为例。它具有 length 和 width 属性。根据设计,它可能需要接受这些属性值、计算面积和显示细节。 让我们来看看一个 Rectangle(矩形)类的实现,并借此讨论 C# 的基本语法:

using System;namespace Shapes
{public class Rectangle{// 成员变量,表示矩形的长度和宽度private double length;private double width;// 构造函数,用于初始化矩形的长度和宽度public Rectangle(double l, double w){length = l;width = w;}// 方法,用于计算矩形的面积public double CalculateArea(){return length * width;}// 方法,用于显示矩形的长度和宽度,面积public void DisplayDetails(){Console.WriteLine("长度: " + length);Console.WriteLine("宽度: " + width);Console.WriteLine("面积: " + CalculateArea());}}class Program{static void Main(){// 创建一个 Rectangle 对象Rectangle rect = new Rectangle(5, 3);// 调用方法rect.DisplayDetails();}}
}

在上面的示例中,我们首先定义了一个Rectangle类,并声明了该类的成员变量、构造函数和方法。然后,在Program类的Main方法中,我们创建了一个Rectangle对象,并调用了它的DisplayDetails方法。

using 关键字

在C#中,using关键字有两种常见的用法:

1、引入命名空间:通过using关键字可以引入一个命名空间,使得在当前代码文件中可以直接使用该命名空间下的类型而不需要使用完整的限定名称。例如:

using System;class Program
{static void Main(){Console.WriteLine("Hello, World!");}
}

在这个例子中,using System;语句引入了System命名空间,因此在Main方法中可以直接使用Console类而不需要写成System.Console.WriteLine("Hello, World!");。 

2、资源管理:在C#中,using语句还可以用于资源管理,特别是在处理需要显式释放的资源(比如文件、数据库连接等)时非常有用。例如:

using (var file = new System.IO.StreamWriter("example.txt"))
{file.WriteLine("Hello, World!");
}

在这个例子中,using语句创建了一个作用域,在作用域结束时会自动调用资源对象的Dispose方法,这样可以确保资源被及时释放,避免资源泄漏。

总之,using关键字在C#中有着重要的作用,既用于简化代码(引入命名空间),也用于资源管理,能够提高代码的可读性和可靠性。

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

class 关键字

在 C# 中,class 是一个关键字,用于定义一个类。类是面向对象编程的基本概念,用于描述一类对象的属性和行为。下面是 class 关键字的基本用法:

public class MyClass
{// 类的成员变量private int myField;// 类的构造函数public MyClass(int value){myField = value;}// 类的方法public void MyMethod(){Console.WriteLine("MyField: " + myField);}
}

在上面的示例中,class 关键字用于定义了一个名为 MyClass 的类。类体中包含了类的成员变量 myField、构造函数 MyClass 和方法 MyMethod。这个类可以用来创建 MyClass 类型的对象,并访问其中定义的成员。

在面向对象编程中,类是一种模板或蓝图,用于创建具体的对象。类可以定义对象的属性(成员变量)和行为(方法),并且可以被实例化为具体的对象进行使用。使用 class 关键字可以为程序提供结构化和模块化的设计,从而方便地组织和管理代码。

总之,class 是 C# 中用于定义类的关键字,它是面向对象编程的基础之一,能够帮助我们更好地组织和抽象程序中的各种数据和行为。

C# 中的注释

注释在程序中起着非常重要的作用,它能够帮助其他开发人员理解代码的意图和功能,也可以提高代码的可维护性和可读性。

在C#中,有三种常见的注释方式:单行注释、多行注释和XML文档注释。

1、单行注释:使用双斜杠 // 进行单行注释。例如:

// 这是单行注释
int x = 5;  // 这也是单行注释

2、多行注释:使用斜杠加星号 /* */ 进行多行注释。例如:

/*
这是
多行
注释
*/
int y = 10;  /* 这也是多行注释 */

3、XML文档注释:XML文档注释用于编写特定格式的注释,以便生成代码文档。XML文档注释以三个连续的斜杠 /// 开始,并且通常用于注释类、方法、属性等。例如:

/// <summary>
/// 这是一个方法的说明
/// </summary>
/// <param name="x">参数x的说明</param>
/// <returns>返回值的说明</returns>
int MyMethod(int x)
{return x * 2;
}

 XML文档注释通常包含 <summary>、<param>、<returns> 等标签,用于描述方法或成员的作用、参数和返回值等信息。

成员变量

在 C# 中,成员变量是指定义在类或结构体中的变量,也可以称为字段(field)。成员变量用于存储对象的状态信息,每个类的对象都有自己的一组成员变量,这些变量描述了对象的特征和数据。成员变量可以具有不同的访问修饰符,如 public、private、protected 等,来控制对其访问的权限。

以下是一个简单的示例,展示了在C#中定义成员变量的方式:

public class Person
{public string name;  // 公有成员变量private int age;      // 私有成员变量public void SetAge(int newAge){age = newAge;     // 可以在类的方法中访问私有成员变量}
}

在这个示例中,Person 类包含了两个成员变量 name 和 age。name 是公有成员变量,可以被外部访问,而 age 是私有成员变量,只能在类的内部访问。通过定义不同访问权限的成员变量,可以控制对象数据的封装性和访问权限,从而确保对象数据的安全性和一致性。

成员变量是面向对象编程中非常重要的概念,它们描述了对象的状态和属性,是对象封装的重要组成部分。

成员函数

在 C# 中,成员函数指的是定义在类或结构体中的函数,也可以称为方法(method)。成员函数用于描述对象的行为和操作,它们可以访问类的成员变量,并且可以执行特定的功能。C# 中的成员函数可以具有不同的访问修饰符,如 public、private、protected 等,来控制对其访问的权限。

以下是一个简单的示例,展示了在C#中定义成员函数的方式:

public class Calculator
{private int result;  // 私有成员变量public void Add(int a, int b){result = a + b;  // 计算结果并存储到成员变量中}public int GetResult(){return result;  // 返回存储的结果}
}

在这个示例中,Calculator 类包含了两个成员函数 Add 和 GetResult。Add 方法用于将两个数相加并将结果存储到成员变量 result 中,而 GetResult 方法用于获取存储的结果并返回它。这两个方法描述了一个简单的计算器对象的行为。

通过定义成员函数,可以将对象的行为和功能封装起来,使得对象的使用者可以通过调用方法来实现特定的操作,而不需要了解方法内部的具体实现细节。成员函数可以访问对象的成员变量,也可以调用其他成员函数,从而实现复杂的功能。

类的实例化

类的实例化就是根据已有的类(class)来创建该类的一个对象(object)。在面向对象的编程中,类定义了对象的属性和行为,而实例化则是根据这个定义来创建具体的对象,使得我们可以使用这个对象来访问类的属性和方法。

打个比方:你设计的飞机模型就相当于程序中的类,而生产出来的飞机就是对象。实例化就好像是通过飞机模型来生产真正的飞机一样,它允许我们在程序中创建出具体的对象,从而可以利用这些对象来完成各种任务。

// 创建一个 Rectangle 对象
Rectangle rect = new Rectangle(5, 3);

标识符

标识符是用来命名类、变量、函数或其他用户定义的项目的名称。在C#中,标识符的命名必须遵循一些基本规则,这有助于确保代码的清晰和一致性。以下是C#中标识符的命名规则:

  1. 标识符必须以字母、下划线或@符号开头,后面可以跟随一系列的字母、数字(0-9)、下划线(_)或@符号。
  2. 标识符中的第一个字符不能是数字。
  3. 标识符中不得包含嵌入的空格或特殊符号,例如?-+!#%^&*()[]{} .;:“” '/ \等。
  4. 标识符不能是C#关键字,除非它们带有@前缀。例如,@if是有效的标识符,但if不是,因为if是关键字。
  5. 标识符是区分大小写的,大写字母和小写字母被视为不同的字符。
  6. 标识符不能与C#的类库名称相同。

C# 关键字

关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。

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

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

保留关键字
abstractasbaseboolbreakbytecase
catchcharcheckedclassconstcontinuedecimal
defaultdelegatedodoubleelseenumevent
explicitexternfalsefinallyfixedfloatfor
foreachgotoifimplicitinin (generic
modifier)
int
interfaceinternalislocklongnamespacenew
nullobjectoperatoroutout
(generic
modifier)
overrideparams
privateprotectedpublicreadonlyrefreturnsbyte
sealedshortsizeofstackallocstaticstringstruct
switchthisthrowtruetrytypeofuint
ulonguncheckedunsafeushortusingvirtualvoid
volatilewhile
上下文关键字
addaliasascendingdescendingdynamicfromget
globalgroupintojoinletorderbypartial
(type)
partial
(method)
removeselectset

 


http://www.ppmy.cn/news/1209024.html

相关文章

为什么说软文推广中了解用户是关键?

数字化时代下软文成为众多企业推广品牌的方式之一&#xff0c;所谓软文&#xff0c;就是指以向用户提供信息&#xff0c;并将产品隐含在信息中的柔性手段。 想要使软文效果明显&#xff0c;就必须深入了解用户&#xff0c;把握其需求、兴趣和行为特点&#xff0c;这也是今天媒…

linux重要的目录之proc和dev目录

/proc/目录 虚拟文件系统&#xff0c;将内核与进程状态归档为文本文件&#xff08;系统信息都存放这目录下&#xff09; Linux系统上的/proc目录是一种文件系统&#xff0c;即proc文件系统。与其它常见的文件系统不同的是&#xff0c;/proc是一种伪文件系统&#xff08;也即虚拟…

React Native适配Xcode 15 iOS 17.0+

iOS 17.0 Simulator(21A328)下载失败 App Store 更新到 Xcode15 后&#xff0c;无法运行模拟器和真机。需要下载iOS 17对应的模拟器。Xcode中更新非常容易中断失败&#xff0c;可以在官网单独下载iOS 17模拟器文件&#xff0c;例如&#xff1a;iOS_17.0.1_Simulator_Runtime.d…

acwing算法基础之搜索与图论--最短路问题

目录 1 基础知识2 模板3 工程化 1 基础知识 假设有n个结点&#xff0c;m条边&#xff08;边的长度或者权重不一致&#xff09;&#xff0c;最短路问题的分类及求解方法如下&#xff1a; 1 单源最短路问题&#xff0c;例如求结点1到结点n的最短距离。 1.1 所有边的权重都是正的…

MeterSphere | 前端入参加密

项目场景&#xff1a; 在 MeterSphere 开源框架中&#xff0c;解决前端手机号入参加密 解决方案&#xff1a; 导入 JavaScript 包采用加密算法 导入网上 JavaScript 包 // 1. 通过cdn加载网上的js文件 g new Packages.org.mozilla.javascript.tools.shell.Global(Packages.o…

0. 前言与大纲

机器学习面试题汇总与解析——前言与大纲 故事引入专栏介绍作者介绍大纲 受众&#xff1a;本教程适合于Python已经入门的学生或人士&#xff0c;有一定的编程基础。 本教程适合于算法工程师、机器学习求职的学生或人士。 故事引入 蒋 豆 芽&#xff1a;老李&#xff0c;我们…

Python语法基础(字符串 列表 元组 字典 集合)

目录 字符串(str)字符串的创建特殊情况字符串的转义字符字符串的运算符字符串常用方法求字符串长度去掉多余空格是否包含某子串分割字符串合并字符串替换字符串统计统计字符串出现的次数 练习&#xff1a;判断字符串是否为回文串 列表(list)列表的创建列表常用方法遍历列表列表…

文件缓存的读写

文件系统的读写&#xff0c;其实就是调用系统函数 read 和 write。下面的代码就是 read 和 write 的系统调用&#xff0c;在内核里面的定义。 SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count) {struct fd f fdget_pos(fd); ......loff_t pos f…