学习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.mzph.cn/news/138212.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

山西电力市场日前价格预测【2023-11-12】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-11-12&#xff09;山西电力市场全天平均日前电价为224.59元/MWh。其中&#xff0c;最高日前电价为434.30元/MWh&#xff0c;预计出现在18:00。最低日前电价为0.00元/MWh&#xff0c;预计出…

19、Flink 的Table API 和 SQL 中的自定义函数及示例(4)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

深度学习 python opencv 火焰检测识别 计算机竞赛

文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…

Python调用pymysql组件MySQL存储过程无法得到返回参数

Python调用MySQL存储过程的返回参数 1. 问题描述 MySQL的存储过程如下&#xff0c;入口参数两个&#xff0c;出口参数1个&#xff1a; DELIMITER $$ create procedure pro_test_args(in a int ,in b int ,out t_num int) beginset t_num a * b;END $$通过Python调用mysql的…

python OrderedDict类(有序字典)

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 创建有序字典 import collectionsdic collections.OrderedDict() dic[k1] v1 dic[k2] v2 dic[k3] v3 print(dic)#输出&#xff1a;OrderedDict([(k1, v1), (…

C#中.NET 7.0不再支持ADO.NET,.NET Framwork依旧支持

目录 一、.NET 7.0框架下任何应用不再支持ADO.NET 二、.NET Framwork框架下Windows窗体应用支持ADO.NET 三、.NET 7.0不支持ADO.NET的真正原因 经过一阵折腾&#xff0c;终于可以确证C#中.NET框架不再支持用户通过ADO.NET的实体框架模型访问数据库&#xff0c;无论是.NET 7…

Rc与Arc实现1vN所有权机制

Rc与Arc实现1vN所有权机制 观察引用计数的变化一个例子多线程无力的Rc< T >Arc Rust所有权机制要求一个值只能有一个所有者&#xff0c;在大多数情况下&#xff0c;都没有问题&#xff0c;但是考虑以下情况&#xff1a; 在图数据结构中&#xff0c;多个边可能会拥有同一个…

C# .NET Core API Controller以及辅助专案

准备工作 Windows 10Visual Studio 2019(2017就有可以集中发布到publish目录的功能了吧)C#将方法封装(据说可以提高效率,就像是我们用的dll那种感觉新增专案作为我们API的辅助专案(作用类似dll&#xff0c;此处&#xff0c;你也可以在你自己的API专案里建文件夹&#xff0c;但…

MySQL---存储过程

存储过程的相关概念 是一组为了完成特定功能的sql语句的集合&#xff0c;类似于函数 写好了一个存储过程之后&#xff0c;我们可以像函数一样随时调用sql的集合。 复杂的&#xff0c;需要很多sql语句联合执行完成的任务 存储过程再执行上比sql语句的执行速度更快&#xff0c…

js 求数组中的对象某个属性和

可以直接看下效果 代码&#xff1a; <script>let list [{num: 1,price: 10,},{num: 2,price: 10,},{num: 3,price: 10,},{num: 4,price: 10,},]// for循环 求总数和 num的和let num 0for (let i 0; i < list.length; i) {num list[i].num}console.log(第一种&am…

学习c#的第三天

目录 C# 数据类型 值类型&#xff08;Value types&#xff09; 引用类型&#xff08;Reference types&#xff09; 指针类型&#xff08;Pointer types&#xff09; C# 类型转换 隐式类型转换 显式类型转换 类型之间的转换 - Convert 和 Parse Convert.ToInt32() 与 i…

AirTag追踪汽车

美国华盛顿特区&#xff0c;11月4日&#xff0c;在一项全新的抗击车辆盗窃的措施中&#xff0c;市长穆里尔•鲍泽签署了一项新计划&#xff0c;将向该市车辆盗窃频率较高的社区居民免费提供苹果AirTag追踪器。 AirTag是苹果公司推出的一款蓝牙跟踪设备&#xff0c;它依靠Findm…

从单体到微服务:使用Spring Boot构建事件驱动的Java应用程序

Spring Boot是Pivotal团队设计的一种微服务框架&#xff0c; 基于Spring开发&#xff0c;用于简化新Spring应用的初始搭建及开发过程&#xff0c;提升Spring 开发者的体验。它秉持“约定大于配置”的思想&#xff0c;集成了大量开箱即用的第三方库&#xff0c;支持绝大多数开源…

asp.net学院网上报销系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net学院网上报销系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言 开发 asp.net学院网上报销系统 应用技术…

基于飞浆resnet50的102分类

目录 1.数据预处理 2.数据导入 3.模型导入 4.批训练 5. 输出结果 6.结果参考 1.数据预处理 Ttransforms.Compose([transforms.Resize((250,250)),transforms.RandomCrop(size224),transforms.RandomHorizontalFlip(0.5),transforms.RandomRotation(degrees15),transforms.Color…

navicat导入.sql文件出现:[ERR] 1067 - Invalid default value for ‘create_date‘

比较老的系统生成的数据库导入5.7时报错[Err] 1067 - Invalid default value for create_time 错误分析 表中的第一个TIMESTAMP列&#xff08;如果未声明为NULL或显示DEFAULT或ON UPDATE子句&#xff09;将自动分配DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP属…

ElasticSearch文档分析

ElasticSearch文档分析 包含下面的过程&#xff1a; 将一块文本分成适合于倒排索引的独立的 词条将这些词条统一化为标准格式以提高它们的“可搜索性”&#xff0c;或者 recall 分析器执行上面的工作。分析器实际上是将三个功能封装到了一个包里&#xff1a; 字符过滤器 首先&a…

【性能测试】非GUI模式Jemter压测+TPS性能拐点详细,一篇带你打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 非GUI模式执行Jem…

RK3568驱动指南|第七篇-设备树-第64章 device_node转换成platform_device实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

SOLIDWORKS软件提供了哪些特征造型方法?硕迪科技

SOLIDWORKS作为一款三维设计软件&#xff0c;为用户提供了多种特征造型方法&#xff0c;以下是其中几种常用的&#xff1a; 实体建模特征&#xff1a;SOLIDWORKS使用实体建模技术来创建和编辑三维几何体。通过使用基本几何体&#xff08;如立方体、圆柱体、圆锥体等&#xff09…