C#学习笔记1:C#基本文件结构与语法

现在开始我的C#学习之路吧,这也许不适合0编程基础的人看,因为我会C语言了,笔记做的可能有思维上的跳跃,如果0基础可能会觉得有些地方转折得莫名奇妙,但我的学习笔记实操还是比较多的,基本都是真实运行程序结果:

 

目录

1、基本文件结构:

2、C#基本语法:

 2.1关键字:

2.2 C#注释方式:

 2.3 变量:

2.4 常量:

2.5 基本运算:

2.6 运算符优先级:


1、基本文件结构:

         程序的第一行using System;-using关键字用于在程序中包含System命名空间。

          一个程序一般有多个using语句。
·        下一行是namespace声明。一个namespace是一系列的类。

          MyfirstConsolApp命名空间包含了类Programe
·        下一行是class声明。类Program包含了程序使用的数据和方法声明。

          类般包含多个方法。方法定义了类的 行为。在这里,Program类只有一个Main方法。
·        下一行定义了Main方法,是所有C#程序的入口点。Main方法说明当执行时类将做什么            动作。
·        Main方法通过方法体中的语句指定它的行为。

2、C#基本语法:

以下几点值得注意:
·        一个cs文件的结构大约是由以上几个部分组成,但是根据不同的需求和作用,

         会有不同的内容;
·        C#是大小写敏感的。(区分大小写)
.        所有的语句和表达式必须以分号 ( ; ) 结尾。
.        程序的执行从Main方法开始。
·        与Jva不同的,文件名可以不同于类的名称。

 

 2.1关键字:

关键字,是对编泽器有特殊意义的预定义保留标示符,它们不能在程序中用作标示符 

如图所示,大体而言,关键字都是蓝颜色的:

这里就不过多赘述关键字具体用法,就贴张盗来的图和查到的文章吧:

C#中的常用关键字及用法_c#关键字-CSDN博客

 

2.2 C#注释方式:

注释的作用:

解释:            说明代码作用
注销:           将暂时不需要的代码注销

被注释的区域是绿色的

 

块注释:

/*此处演示块注释适用于C#的多行注释*/

 

 

 单行注释:

//此处演示单行注释

 

 

文档注释:

可以在声明的方法和类上进行文档注释:只需打三条斜杠就会给你自动标注出俩行的<symmary>

    /// <summary>/// 声明的类/// </summary>

 2.3 变量:

 变量是一个供程序存储数据盒子。在C#中,每个变量都有一个特定的类型。
 不同类型的变量其内存大小也不尽相同

 

不同类型的变量赋值范围也不同,下面简单列举一些变量的范围 ,简单的初始化赋值方式:

变量必须先定义,后引用,语法格式:

  数据类型 变量名列表;
            //byte的范围  0~255byte b=255;//short的范围  -32768~32767short s=32767;//int的范围      -2147483648~2147483647int i=123;//1ong的范围   -9*10^18  ~  9*10^18long L=432;

 编写在控制台输出其值的程序:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;/*此处演示块注释适用于C#的多行注释*/namespace MyfirstConsolApp //此处演示单行注释
{/// <summary>/// 声明的类/// </summary>internal class Program  ///此处演示文档注释{static void Main(string[] args)//程序的入口方法:首先被执行的{//byte的范围  0~255byte b=255;//short的范围  -32768~32767short s=32767;//int的范围      -2147483648~2147483647int i=123;//1ong的范围   -9*10^18  ~  9*10^18long L=432;Console.WriteLine("现在正式开始学习C#开发");Console.WriteLine(b);Console.WriteLine(s);Console.WriteLine(i);Console.WriteLine(L);Console.ReadLine();}}
}

运行效果:

 

字符串类型的赋值需要有 双引号框出 " " :

            string st;st = "Hello world";Console.WriteLine(st);

 

字符类型赋值时则需要单引号框出,而且只能一个字符:

            char C;C = 'H';Console.WriteLine(C);

 

null本身即代表一个值“空”(空类型), 他不需要被定义,也不能被定义:

这段代码先给字符串st赋值了Hello world,但之后又紧接着给它赋值了null

因此最终输出结果就是null ,即空类型;

此处需要注意,数字类型 与 bool类型 不能 赋值为null

            string st;st = "Hello world";st = null;Console.WriteLine(st);

 

浮点数后的f不能省略:

(C和C++语言里可以省略,但C#这里不行)

            float F = 123.456f;Console.WriteLine(F);     

2.4 常量:

我们可以在编程时定义一些常量,其值不能被改变

除了定义外,有些特殊的转义字符也是常量,比如回车、换行等的转义符

定义常量极其注意点:

const 数据类型 符号常量名(或常量表达数据)

1、常量只有在初始化同时才能赋值

2、常量表达式赋值不能出现变量

 

以下为合法实例:

            const double R = 10;      //定义的常量const double G = 3.1415;  //定义的常量const double H = R * G;   //定义的常量等于原先定义的俩个常量的运算Console.WriteLine(H);     //打印H测试

 

 以下为非法的操作,编译会不通过:

 1、像这种明明定义的H是常量,且初始化就赋值了,在给其赋值的操作非法:

(常量就是初始化后不变了,不能再给其赋值,否则请定义为变量)

 

 2、用算数表达式初始化定义常量时,混入了变量:

(这里我们看到R被定义为变量了,因此H=R*G便不符合常量表达了)

2.5 基本运算:

 

算数运算:

 自加自减运算:

 关系运算:

逻辑运算:

条件运算:

条件运算是一种三元运算:

布尔类型表达式?表达式1:表达式2

            int a = 10, b = 20, c=0;Console.WriteLine(c);       //c的值为0c = a > b ? a + b : a - b;  //因为a<b,所以c=a-b,c = -10Console.WriteLine(c);c = a < b ? a + b : a - b;  //因为a<b,所以c=a+b,c = 30Console.WriteLine(c);

运行结果:

简单赋值运算:

变量=表达式

1、计算表达式的值,并将该值赋给左边变量

2、将表达式的值作为整个赋值表达式的值

            int a,b;a = b =10;Console.WriteLine(a);Console.WriteLine(b);

复合赋值运算:

            int a, b;a = b = 10;a += 20;  Console.WriteLine(a);   //此处相当于a=a+20,所以输出30b += a += 20;           //此处先让之前已经变为30的 a 再加20,a=50Console.WriteLine(a);   //此处a输出为50Console.WriteLine(b);   //然后b在加上a=50的值,所以b输出为60

 运行结果:

 

2.6 运算符优先级:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/767627.shtml

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

相关文章

vue3项目初始化

初始化项目newsapp VSCode 打开终端&#xff0c;newsapp项目目录&#xff0c;可自定义 vue create newsapp 有提示“因为在此系统上禁止运行脚本”的话&#xff0c;请执行 set-ExecutionPolicy RemoteSigned 执行后再重复执行vue create newsapp 注意选择Vue 3版本 测试项…

vector类详解及重要函数实现

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 今日主菜&#xff1a;vector类 主厨&#xff1a;邪王真眼 所属专栏&#xff1a;c专栏 主厨的主页&#xff1a;Chef‘s blog 坚持下去&#xff0c;成功不是目的&a…

【每周赠书活动第1期】Python编程 从入门到实践 第3版(图灵出品)

编辑推荐 适读人群 &#xff1a;本书适合对Python感兴趣的所有读者阅读。 编程入门就选蟒蛇书&#xff01; 【经典】Python入门经典&#xff0c;常居Amazon等编程类图书TOP榜 【畅销】热销全球&#xff0c;以12个语种发行&#xff0c;影响超过 250 万读者 【口碑】好评如潮…

手撕算法-删除有序数组中的重复项 II

描述 例如&#xff1a;输入&#xff1a;nums [1,1,1,2,2,3]输出&#xff1a;5, nums [1,1,2,2,3]解释&#xff1a;函数应返回新长度 length 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。 不需要考虑数组中超出新长度后面的元素。 分析 双指针, fast, slow。nums[…

Python并发编程:线程和多线程的使用

前面的文章&#xff0c;我们讲了什么Python的许多基础知识&#xff0c;现在我们开始对Python并发编程进行学习。我们将探讨 Python 中线程和多线程的使用。帮助大家更好地理解如何使用这种技术。 目录 1. 线程&#xff08;Threads&#xff09; 1.1 Python 中的线程工作原理 …

CSP-S 真题:格雷码

原文链接&#xff1a;CSP-S 真题第二讲&#xff1a;格雷码 说明&#xff1a;CSDN和公众号文章同步发布&#xff0c;需要第一时间收到最新内容&#xff0c;请关注公众号【比特正传】。 一、题目背景 题目来源&#xff1a;CSP-S 2019年 T1 题目考察点&#xff1a;递归、搜索 …

C语言:实现使用malloc函数模拟开辟一个二维数组

目录 解题思路 步骤一&#xff1a;开辟空间 步骤二&#xff1a;使用空间 步骤三&#xff1a;释放空间 图解 完整代码展示&#xff1a;注意看注释 在C语言编程中&#xff0c;处理多维数据结构时&#xff0c;我们通常会遇到二维数组。然而&#xff0c;对于特定大小或需要动…

Java秘笈

一、缩略 二、详版 【CDN分发】||----【跳板机】---SSH&#xff1a;(^_^) 管理员/运维Iptables【防火墙】要求&#xff1a;HA||----【等保系统】||----【蜜罐系统】【反向代理】Nginx/Lvs【静态服务器】【边际路由】要求&#xff1a;HA||Gateway/Zull【Api网关】要求&#xff1…

JS精度计算的几种解决方法,1、转换成整数计算后再转换成小数,2、toFixed,3、math.js,4、bignumber.js,5、big.js

提示&#xff1a;学习express&#xff0c;搭建管理系统 文章目录 前言一、转换成整数计算后再转换成小数二、toFixed三、math.js四、bignumber.js五、big.js总结 前言 原始计算 let aNum 6.6 0.3;let bNum 6.6 - 0.2;let cNum 6.6 * 0.3;let dNum 6.6 / 0.2;console.log(…

Linux之基础IO

1.C语言中的文件操作函数 文件的打开 path为文件路径&#xff0c;mode为打开方式&#xff0c;它们都是字符串。 代码演示&#xff1a; 此时&#xff0c;当前目录中并没有log.txt文件&#xff0c;但是没关系&#xff0c;fopen会在当前路径下创建log.txt文件。 简单来说&#xf…

分享 | 使用Virtuoso VCPVSR工具基于标准单元的布局布线流程

​ 本节内容 导览 一、准备工作 二、运行VCP前的配置 三、VCP的布局规划 四、VCP的自动摆放 五、VSR的自动绕线 分享使用Virtuoso GXL Custom Digital Placer(VCP) & Space-based Router(VSR)工具进行基于纯数字Standard-Cell布局布线的操作流程。 VCP&VSR演…

【MySQL】2.MySQL数据库的基本操作

目录 数据库基本操作 查看数据库信息 查看数据库结构 显示数据表的结构&#xff08;字段&#xff09; 常用的数据类型 数据库管理操作 SQL语句概述 SQL分类 1.DDL&#xff1a;数据定义语言 1.1创建数据库和表 创建数据库 创建数据表 1.2删除数据库和表 删除数据表…

【数字图像处理matlab系列】使用数组索引进行简单的图像裁剪、二次取样操作

【数字图像处理matlab系列】使用数组索引进行简单的图像裁剪、二次取样操作 【先赞后看养成习惯】求点赞+关注+收藏! pout.tif是一张matlab自带的图片,图像尺寸是291*240,使用imread读取该图像>> a = imread(pout.tif); >> imshow(a);对图像a进行上下翻转操作,…

国务院办公厅发布:政府类网站网页设计规范(试行)

国务院办公厅于2019年12月发布了《政府类网站网页设计规范&#xff08;试行&#xff09;》。该规范的发布旨在统一政府类网站的设计风格和标准&#xff0c;提升政府网站的用户体验和可访问性&#xff0c;推动政府信息公开和服务的提升。 该规范涵盖了政府类网站的各个方面&…

【代码学习】Mediapipe人脸检测使用记录

Mediapipe&#xff0c;每秒200-300帧的实时人脸检测&#xff0c;提取画面中的人脸框&#xff0c;实现后续各种应用&#xff1a;人脸属性识别、表情识别、关键点检测、三维重建、增强现实、AI换妆等 code&#xff1a;google/mediapipe: Cross-platform, customizable ML soluti…

Java异常类型及异常处理方式

本章学习内容&#xff1a;使用异常处理机制&#xff0c;对程序运行过程中出现的异常情况进行捕捉并处理. 目录 &#x1f4cc; Java异常概述 &#x1f4cc; Java异常体系结构 &#x1f4cc; 常见的异常 &#x1f4cc; 异常处理 &#x1f4cc; Java异常概述 ○ 异常的概念&…

数据库管理-第163期 19c重建ADG的两个方法(20240323

数据库管理163期 2024-03-23 数据库管理-第163期 19c重建ADG的两个方法&#xff08;20240323&#xff09;1 ORA-081032 新办法1 关闭MRP2 恢复备库3 其他操作4 启动备库5 启动MRP 3 老办法4 预告总结 数据库管理-第163期 19c重建ADG的两个方法&#xff08;20240323&#xff09;…

vscode配置c/c++调试环境

本文记录win平台使用vscode远程连接ubuntu server服务器下&#xff0c;如何配置c/c调试环境。 过程 1. 服务器配置编译环境 这里的前置条件是vscode已经能够连接到服务器&#xff0c;第一步安装编译构建套件&#xff08;gcc、g、make、链接器等&#xff09;和调试器&#xf…

vue3之生命周期

Vue3之生命周期 主要Vue生命周期事件被分为两个钩子&#xff0c;分别在事件之前和之后调用&#xff0c;vue应用程序中有4个主要事件(8个钩子)&#xff1a; 创建 ---- 在组建创建时执行挂载 ---- DOM被挂载时执行更新 ---- 当响应数据被修改时执行销毁 ---- 在元素被销毁之前立…

深度学习模型部署(十一)TensorRT写Plugin

什么是plugin & 有什么用&#xff1f; TensorRT的一种机制&#xff0c;以.so的形式插入到网络中实现某些算子。 作用&#xff1a; 实现TensorRT不支持的层替换性能不好的层手动进行图优化算子融合 写Plugin就是自己写算子的CUDA kernel实现。 Plugin与其他layer之间无法…