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

医疗网站建设免费/成品网站源码在线看

医疗网站建设免费,成品网站源码在线看,深圳cms建站模板,注册营业执照需要什么资料序号系列文章0【C#基础】初识编程语言C#1【C#基础】C# 程序通用结构总结 文章目录前言基础语法1. using 关键字2. namespace 关键字3. class 关键字4. 成员字段5. 成员方法6. Main 方法7. new 关键字8. 标识符9. 关键字结语前言 😄 大家好,我是writer桑&…
序号系列文章
0【C#基础】初识编程语言C#
1【C#基础】C# 程序通用结构总结

文章目录

  • 前言
  • 基础语法
    • 1. using 关键字
    • 2. namespace 关键字
    • 3. class 关键字
    • 4. 成员字段
    • 5. 成员方法
    • 6. Main 方法
    • 7. new 关键字
    • 8. 标识符
    • 9. 关键字
  • 结语

前言

😄 大家好,我是writer桑,前面一章已经学习了C#的程序结构,那本章就开始学习C#程序中基础的语法,希望看完大家能够有所收获,感谢支持!


基础语法

首先 C# 作为一门面向对象的编程语言,有着许多区别于其他语言不同的地方,其中包括关键字的运用、类成员、标识符等等。本章从这几个方面进行学习,以便对搭建 C# 程序有个初步的认识。

首先以下面 Square 程序的实现做示例,以借此讨论 C# 的基础语法。

using System;		// using 指令 namespace SquareApplication		// namespace 命名空间
{internal class Square{// 成员字段private double length;private double width;// 成员方法public void Acceptdetails(){length = 4.5;width = 3.5;}public double GetArea(){return length * width;}public void Display(){Console.WriteLine("Length: {0}", length);Console.WriteLine("Width: {0}", width);Console.WriteLine("Area: {0}", GetArea());}}class ExecuteSquare{// Main 方法的声明static void Main(string[] args){Square s = new Square();	// 创建类型的新实例s.Acceptdetails();s.Display();Console.ReadLine();}}
}

1. using 关键字

在 C# 程序中 using 关键字有三种用法:

1,using 指令导入指定的命名空间

using System;  
  • using 指令允许使用在命名空间中定义的类型,而无需指定该类型的完全限定命名空间。using 指令以基本形式从单个命名空间导入所有类型。
  • 程序中 using System 表示导入 System 命名空间, 同时一个程序允许有多个 using 指令的存在 ,这种用法类似于 Python 中的 Import 语法。

2, using 别名指令为名称空间或类型创建别名。

using systext = System.Text;
// using systext;  // 编译器错误:未能找到类型或命名空间名"systext"
  • 创建 using 别名指令,以便更易于将标识符限定为命名空间或类型。 在任何 using 指令中,都必须使用完全限定的命名空间或类型,而无需考虑它之前的 using 指令。
  • 注意,using 指令的声明中不能使用 using 别名。否则会生成编译器错误;而且 using 别名指令的右侧不能有开放式泛型类型。 例如,不能为 List<T> 创建 using 别名,但可以为 List<int> 创建 using 别名。

3, using 语句定义一个范围,在此范围的末尾将释放对象。

// 注意 Square 类需要继承 IDisposable 接口
using (Square s = new Square())
{// use s..// 离开这个代码块资源会自动释放
}
  • 在程序编译阶段,编译器会自动将using语句生成为try-catch-finally语句,并在finally块中调用对象的Dispose方法,来清理资源。
  • using 语句提供可确保正确使用 IDisposable 对象的方便语法。 await using 语句可确保正确使用 IAsyncDisposable 对象。 C# 语言支持实现 System.IAsyncDisposable 接口的异步可释放类型。

2. namespace 关键字

namespace 关键字用于声明命名空间,在 C# 程序有两种用法:

1,namespace 关键字用于声明包含一组相关对象的作用域。可以使用命名空间来组织代码元素并创建全局唯一类型。

namespace SquareApplication
{class Square{public void SquareMethod(){System.Console.WriteLine("SquareMethod inside SquareNamespace");}}
} 
  • 其他文件可以直接使用 using 指令引用 SquareApplication 命名空间。
  • 命名空间的名称必须是有效的 C# 标识符名称。

2,从 C# 10 开始,可以为该文件中定义的所有类型声明一个命名空间,如以下示例所示:

namespace SquareApplication;class Square
{public void SquareMethod(){System.Console.WriteLine("SquareMethod inside SquareNamespace");}
}
  • 这种新语法的优点是更简单,这节省了水平空间且不必使用大括号。 提高了代码的可读性。

3. class 关键字

在 C# 程序中使用 class 关键字声明类,示例如下:

class Square
{// Square details
}class ExecuteSquare
{// ExecuteSquare details
}
  • 用 class 关键字声明的类型为引用类型,方便其它代码创建类实例对象。
  • 使用 class 关键字声明的类名称必须是有效的 C# 标识符名称。
  • class 关键字前面是访问级别,默认为 internal 类型, 即同一个程序集的对象可以访问。

4. 成员字段

变量声明语法: <data_type> <var_name>;在 Square 类中声明了 width 和 length 两个成员字段:

private double length;		
private double width;
  • 成员字段是在类范围声明的变量。 变量是类的属性或数据成员,用于存储数据。
  • 变量的 data_type 声明必须是有效的 C# 数据类型,var_name 名称必须是有效的 C# 标识符名称。
  • data_type 前面是变量的访问级别,默认为 private 类型,即对象本身在对象内部可以访问。

5. 成员方法

方法声明语法:<Access Specifier> <Return Type> <Method Name>(Parameter List) { Method Body } ; Square 类包含了三个成员方法: AcceptDetails、GetArea 和 Display。

// 成员方法
public void Acceptdetails()
{// Method Body
}public double GetArea()
{// Method Body
}public void Display()
{// Method Body 
}
  • 成员方法定义类执行的操作。 方法可接受提供输入数据的参数,并可通过参数返回输出数据。 方法还可以不使用参数而直接返回值。
  • 在声明语法中 Access Specifier、Return Type、Method Name 分别表示访问说明、返回类型、方法名称。其中返回类型和名称必须声明,访问权限默认为 private, 即对象本身在对象内部可以访问 。

6. Main 方法

在 C# 程序中, Main 方法是应用程序的入口点:

static void Main(string[] args)
{// Main Method Body
}
  • Main 方法是程序控制开始和结束的位置, 它决定着当前类具体的行为。
  • Main 在类或结构中声,Main 必须是 static,它不需要是 public。且封闭类或结构不一定要是静态的。
  • Main 的返回类型可以是 void、int、Task 或 Task<int>。
  • 在 C# 9 之前程序必须声明 Main 方法,否则会报编译器错误, 而在 C# 9 之后(包含 C# 9)则可以使用顶级语句,无需应用程序中显式声明 Main 方法。

7. new 关键字

在 C# 程序中使用 new 运算符创建类型的新实例。 new 关键字还可用作成员声明修饰符或泛型类型约束。

  • 1,要创建类型的新实例,通常使用 new 运算符调用该类型的某个构造函数;可以使用带有 new 运算符的对象或集合初始值设定项实例化和初始化一个语句中的对象,如下所示:
// 创建类型的新实例 
Square s = new Square() 
{// 实例化 Square 类并在这设定初始值
};	
  • 2,new 修饰符可以显式隐藏从基类继承的成员。 隐藏继承的成员时,该成员的派生版本将替换基类版本。
// 使用 DerivedC.Invoke 隐藏了 BaseC.Invoke。
// 字段 x 不受影响,因为未使用类似名称将其隐藏。
public class BaseC
{public int x;public void Invoke() { }
}public class DerivedC : BaseC
{new public void Invoke() { }
}
  • 3,new 约束指定泛型类或方法声明中的类型实参必须有公共的无参数构造函数。 若要使用 new 约束,则该类型不能为抽象类型。
class ItemFactory<T> where T : new()
{public T GetNewItem(){return new T();}
}

8. 标识符

标识符是分配给类型(类、接口、结构、记录、委托或枚举)、成员、变量或命名空间的名称。以下是 C# 标识符命名规则和约定:

命名规则:

有效标识符必须遵循以下规则:

  • 标识符必须以字母或下划线 ( _ ) 开头。
  • 标识符可以包含 Unicode 字母字符、十进制数字字符、Unicode 连接字符、Unicode 组合字符或 Unicode 格式字符。
  • 可以在标识符上使用 @ 前缀来声明与 C# 关键字匹配的标识符。 @ 不是标识符名称的一部分。 例如,@if 声明名为 if 的标识符。 这些逐字标识符主要用于与使用其他语言声明的标识符的互操作性。

命名约定:

除了规则之外,C # 程序的类型名称、命名空间和所有公共成员也应当遵循PascalCase(变量命名方法)。 以下为常见的约定:

  • 接口名称以大写字母 I 开头。
  • 属性类型以单词 Attribute 结尾。
  • 枚举类型对非标记使用单数名词,对标记使用复数名词。
  • 标识符不应包含两个连续的下划线 ( _ ) 字符。 这些名称保留给编译器生成的标识符。

9. 关键字

关键字是预定义的保留标识符,对编译器有特殊意义。 除非前面有 @ 前缀,否则不能在程序中用作标识符。 例如,@if 是有效标识符,而 if 则不是,因为 if 是关键字。

1,第一个表列出了是 C# 程序任意部分中的保留标识符的关键字:

保留关键字
abstractasbaseboolbreakbytecase
catchcharcheckedclassconstcontinuedecimal
defaultdelegatedodoubleelseenumevent
explicitexternfalsefinallyfixedfloatfor
foreachgotoifimplicitinintinterface
internalislocklongnamespacenewnull
objectoperatoroutoverrideparamsprivateprotected
publicreadonlyrefreturnsbytesealedshort
sizeofstackallocstaticstringstructswitchthis
throwtruetrytypeofuintulongunchecked
unsafeushortusingvirtualvoidvolatilewhile

2, 以下三个表列出了 C# 中的上下文关键字。 上下文关键字用于在代码中提供特定含义,但它不是 C# 中的保留字。 一些上下文关键字(如 partial 和where)在两个或多个上下文中有特殊含义。

上下文关键字
addandaliasascendingargsasyncawait
bydescendingdynamicequalsfromgetglobal
groupinitintojoinlet
托管(函数指针调用约定)
nameofnintnotnotnullnuintonor
orderbypartial(类型)partial(方法)recordremoveselectset
非托管(函数指针调用约定)
unmanaged(泛型类型约)valuevarwhen(筛选条件)
where(泛型类型约束)where(查询子句)withyield
  • 上下文关键字仅在一部分程序上下文中有特殊含义,可以在相应上下文范围之外用作标识符。
  • 一般来说,C# 语言中新增的关键字会作为上下文关键字添加,以免破坏用旧版语言编写的程序。

结语

✔️ 以上就是 C# 基础语法的介绍,希望能够对大家有所帮助。望大家多多支持,你们的支持就是笔者创作最大的动力!

相关文章:

【C#基础】C# 程序基础语法解析

序号系列文章0【C#基础】初识编程语言C#1【C#基础】C# 程序通用结构总结 文章目录前言基础语法1. using 关键字2. namespace 关键字3. class 关键字4. 成员字段5. 成员方法6. Main 方法7. new 关键字8. 标识符9. 关键字结语前言 &#x1f604; 大家好&#xff0c;我是writer桑&…...

【webpack】webpack 中的插件安装与使用

一、webpack 插件的作用 通过安装和配置第三方的插件&#xff0c;可以拓展 webpack 的能力&#xff0c;从而让 webpack 用起来更方便。最常用的 的webpack 插件有如下两个&#xff1a; 1.webpack-dev-server&#xff08;实时打包构建&#xff09; 类似于 node.js 阶段用到的 no…...

生物素-磺基-活性酯,Sulfo-NHS Biotin科研用试剂简介;CAS:119616-38-5

生物素-磺基-活性酯,Sulfo-NHS Biotin 结构式&#xff1a; ​ 编辑 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 英文名称&#xff1a;Sulfo-NHS-Biotin Sulfosuccinimidyl biotin 中文名称&#xff1a;磺酸基-Biotin-N-琥珀酰亚胺基酯 CAS&…...

Debain安装命令

目录 一、安装sudo命令 二、安装jdk8 三、更换软件源 四、Debian 安装 yum 五、安装zip、unzip、curl、lrzsz、NUMA 六、安装Maven 五、问题 一、安装sudo命令 1&#xff09;执行sudo命令&#xff0c;提示 -bash: sudo: command not found的解决方法 apt-get install s…...

2023-02-10 - 6 聚合

当用户使用搜索引擎完成搜索后&#xff0c;在展示结果中需要进行进一步的筛选&#xff0c;而筛选的维度需要根据当前的搜索结果进行汇总&#xff0c;这就用到了聚合技术。聚合的需求在很多应用程序中都有所体现&#xff0c;例如在京东App中搜索“咸鸭蛋”&#xff0c;然后单击搜…...

Servlet实现表白墙

目录 一、表白墙简介 二、代码实现 1、约定前后端交互的接口 2、后端代码实现 3、前端代码实现 三、效果演示 一、表白墙简介 在表白墙页面中包含三个文本框&#xff0c;分别表示表白者&#xff0c;表白对象&#xff0c;表白内容&#xff0c;在文本框中输入内容之后&…...

[python入门㊸] - python测试函数

目录 ❤ 测试函数 ❤ 单元测试和测试用例 ❤ 可通过的测试 ❤ 不能通过的测试 ❤ 测试未通过时怎么办 ❤ 添加新测试 ❤ 测试函数 学习测试&#xff0c;得有测试的代码。下面是一个简单的函数&#xff1a; name_function.py def get_formatted_name(first, last):…...

通讯录文件操作化

宝子&#xff0c;你不点个赞吗&#xff1f;不评个论吗&#xff1f;不收个藏吗&#xff1f; 最后的最后&#xff0c;关注我&#xff0c;关注我&#xff0c;关注我&#xff0c;你会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的很重…...

为什么 Web3 社交将超越其 Web2 同行

我们最近听到了很多关于 web3 社交媒体平台的消息。但如果你没有跟上&#xff0c;你可能想知道为什么我们已经有了 Twitter、Facebook、Instagram 等&#xff0c;我们还需要 web3 社交。好吧&#xff0c;这一切都取决于谁拥有权力。 在 web2 中&#xff0c;权力掌握在寻求收入最…...

当资深程序员深夜去“打劫”会发生什么?——打家劫舍详解

文章目录一、前言二、概述三、打家劫舍第一晚四、打家劫舍第二晚五、打家劫舍第三晚......一、前言 大家好久不见&#xff0c;正如标题所示&#xff0c;今天我不打算聊一些枯燥的算法理论&#xff0c;我们来聊一聊程序员有多厉害&#xff01; 注意&#xff01;&#xff01;&am…...

linux 线程

文章目录1、线程的概念1.1、进程 vs 线程1.2、线程的种类2、线程的控制2.1、线程的创建2.2、线程的退出2.3、线程的取消2.4、线程的等待2.5、线程的分离2.5、线程清理函数线程清理函数响应的时机线程清理函数不响应的时机3、线程的同步和互斥3.1、锁机制3.1.1、锁的类型3.1.2、…...

Windows 安装appium环境

1 windows Appium环境 1.1 安装Node.js Node.js的安装相对简单,下载安装包安装&#xff08;安装包node-v19.6.0-x64.msi&#xff09;, nodejs 安装 然后一路狂点下一步就可以了 安装完成后,在终端中输入node -v,显示版本号则表示安装成功 node-v16.13.1 1.2 JDK安装及环境变…...

为什么要在电子产品中使用光耦合器?

介绍 光耦合器不仅可以保护敏感电路&#xff0c;还可以使工程师设计各种硬件应用。光耦合器通过保护元件&#xff0c;可以避免更换元件的大量成本。然而&#xff0c;光耦合器比保险丝更复杂。光耦合器还可以通过光耦合器连接和断开两个电路&#xff0c;从而方便地控制两个电路…...

Vue3 如何实现一个函数式右键菜单(ContextMenus)

前言: 最近在公司 PC 端的项目中使用到了右键出现菜单选项这样的一个工作需求&#xff0c;并且自己现在也在实现一个偶然迸发的 idea&#xff08; 想用前端实现一个 windows 系统从开机到桌面的 UI&#xff09;&#xff0c;其中也要用到右键弹出菜单这样的一个功能&#xff0c;…...

ffmpeg转码转封装小工具开发

如下图所示&#xff0c;是本人开发的一个转码转封装小工具 其中目标文件视频编码格式支持&#xff1a;H264&#xff0c;H265&#xff0c;VP8&#xff0c;VP9。 目标文件封装格式支持&#xff1a;mp4,mkv,avi,mov,flv。 目标文件音频编码格式支持两个&#xff0c;COPY和AAC&am…...

重入和线程安全

在整个文档中&#xff0c;重入和线程安全用于标记类和函数&#xff0c;从而表明怎样在多线程应用中使用它们。 线程安全函数可以从多个线程同时调用&#xff0c;即使调用使用共享数据也是如此&#xff0c;因为对共享数据的所有引用都是序列化的。也可以从多个线程同时调用重入…...

MySQL数据库06——条件查询(WHERE)

MySQL条件查询&#xff0c;主要是对数据库里面的数据按照一定条件进行筛选&#xff0c;主要依靠的是WHERE语句进行。 先来了解一下基础的条件运算。 关系运算符 逻辑运算符 逻辑运算符优先级&#xff1a;NOT>AND>OR&#xff0c;关系运算符>逻辑运算符 SQL特殊运算符…...

Lesson 6.5 机器学习调参基础理论与网格搜索

文章目录一、机器学习调参理论基础1. 机器学习调参目标及基本方法2. 基于网格搜索的超参数的调整方法2.1 参数空间2.2 交叉验证与评估指标二、基于 Scikit-Learn 的网格搜索调参1. sklearn 中网格搜索的基本说明2. sklearn 中 GridSearchCV 的参数解释3. sklearn 中 GridSearch…...

leetcode: Two Sum

leetcode: Two Sum1. 题目1.1 题目描述2. 解答2.1 baseline2.2 基于baseline的思考2.3 优化思路的实施2.3.1 C中的hashmap2.3.2 实施2.3.3 再思考2.3.4 最终实施3. 总结1. 题目 1.1 题目描述 Given an array of integers nums and an integer target, return indices of the …...

共享模型之无锁(三)

1.原子累加器 示例代码: public class TestAtomicAdder {public static void main(String[] args) {for (int i 0; i < 5; i) {demo(() -> new AtomicLong(0),(adder) -> adder.getAndIncrement());}for (int i 0; i < 5; i) {demo(() -> new LongAdder(),(…...

微信小程序 Springboot校运会高校运动会管理系统

3.1小程序端 小程序登录页面&#xff0c;用户也可以在此页面进行注册并且登录等。 登录成功后可以在我的个人中心查看自己的个人信息或者修改信息等 在广播信息中我们可以查看校运会发布的一些信息情况。 在首页我们可以看到校运会具体有什么项目运动。 在查看具体有什么活动我…...

走进独自开,带你轻松干副业

今天给大家分享一个开发者的福利平台——独自开&#xff08;点击直接注册&#xff09;&#xff0c;让你在家就能解决收入问题。 文章目录一、平台介绍二、系统案例三、获取收益四、使用平台1、用户注册2、用户认证3、任务报价五、文末总结一、平台介绍 简单说明 独自开信息科技…...

SpringBoot+Vue实现师生健康信息管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏…...

数据库第四章节第三次作业内容

1、显示所有职工的基本信息。 2、查询所有职工所属部门的部门号&#xff0c;不显示重复的部门号。 3、求出所有职工的人数。 4、列出最高工和最低工资。 5、列出职工的平均工资和总工资。 6、创建一个只有职工号、姓名和参加工作的新表&#xff0c;名为工作日期表…...

一篇五分生信临床模型预测文章代码复现——FIgure 9.列线图构建,ROC分析,DCA分析 (四)

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…...

神经网络实战--使用迁移学习完成猫狗分类

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 今天来学习一下如何使用基于tensorflow和keras的迁移学习完成猫狗分类&#xff0c;欢迎大家一起前来探讨学习~ 本文目录&#xff1a;一、加载数据集1.调用库函数2.加载数据集3.数据集管理二、猫狗数据集介绍1.猫狗数据集介…...

Attention机制 学习笔记

学习自https://easyai.tech/ai-definition/attention/ Attention本质 Attention&#xff08;注意力&#xff09;机制如果浅层的理解&#xff0c;跟他的名字非常匹配。他的核心逻辑就是“从关注全部到关注重点”。 比如我们人在看图片时&#xff0c;对图片的不同地方的注意力…...

数据类型与运算符

1.字符型作用: 字符型变量用于显示单个字符语法: char cc a ;注意1: 在显示字符型变量时&#xff0c;用单引号将字符括起来,不要用双引号注意2: 单引号内只能有一个字符&#xff0c;不可以是字符串C和C中字符型变量只占用1个字节。字符型变是并不是把字符本身放到内存中存储&am…...

算法刷题-二叉树的锯齿形层序遍历、用栈实现队列 栈设计、买卖股票的最佳时机 IV

文章目录二叉树的锯齿形层序遍历&#xff08;树、广度优先搜索&#xff09;用栈实现队列&#xff08;栈、设计&#xff09;买卖股票的最佳时机 IV&#xff08;数组、动态规划&#xff09;二叉树的锯齿形层序遍历&#xff08;树、广度优先搜索&#xff09; 给定一个二叉树&…...

华为OD机试 - 最小传递延迟(Python)| 代码编写思路+核心知识点

最小传递延迟 题目 通讯网络中有 N 个网络节点 用 1 ~ N 进行标识 网络通过一个有向无环图进行表示 其中图的边的值,表示节点之间的消息传递延迟 现给定相连节点之间的延时列表 times[i]={u,v,w} 其中 u 表示源节点,v 表示目的节点,w 表示 u 和 v 之间的消息传递延时 请计…...