当前位置: 首页 > news >正文

学习c#的第二天

目录

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.lryc.cn/news/231271.html

相关文章:

  • CodeWhisperer 使用经验分享
  • 数据结构与算法之美学习笔记:18 | 散列表(上):Word文档中的单词拼写检查功能是如何实现的?
  • 解决java发邮件错误javax.net.ssl.SSLHandshakeException: No appropriate protocol
  • 杭电oj 2035 人见人爱A^B C语言
  • [量化投资-学习笔记017]Python+TDengine从零开始搭建量化分析平台-异常处理
  • Mysql中的索引与事务和B树的知识补充
  • 2024上海国际智能驾驶技术展览会(自动驾驶展)
  • 嵌入式Linux开发,NFS文件系统挂载
  • 什么是3D建模中的“高模”和“低模”?
  • python数据结构与算法-04_队列
  • 从理论到实践:深度解读BIO、NIO、AIO的优缺点及使用场景
  • Mysql Innodb Cluster集群搭建 - docker
  • 如何在 macOS 中删除 Time Machine 本地快照
  • mysql的sql_mode参数
  • 模拟业务流程+构造各种测试数据,一文带你测试效率提升80%
  • 【linux】 Shell函数返回值
  • 面试:容器技术
  • 在Linux中nacos集群模式部署
  • 7天入门python系列之爬取热门小说项目实战,互联网的东西怎么算白嫖呢
  • 产品经理墨刀学习----注册页面
  • 算法通关村——归并排序
  • SDL2 播放音频数据(PCM)
  • 优秀智慧园区案例 - 重庆AI PARK智慧创意园区,先进智慧园区建设方案经验
  • 如何编写一个Perl爬虫程序
  • linux查看当前目录大小及磁盘大小
  • windows系统pycharm程序通过urllib下载权重https报错解决
  • Python数据结构: 列表(List)详解
  • 查找py源代码目录
  • React Virtual DOM及Diff算法
  • Spark通过三种方式创建DataFrame