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~255
            byte b=255;
            //short的范围  -32768~32767
            short s=32767;
            //int的范围      -2147483648~2147483647
            int i=123;
            //1ong的范围   -9*10^18  ~  9*10^18
            long 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~255
            byte b=255;
            //short的范围  -32768~32767
            short s=32767;
            //int的范围      -2147483648~2147483647
            int i=123;
            //1ong的范围   -9*10^18  ~  9*10^18
            long 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的值为0
            c = a > b ? a + b : a - b;  //因为a<b,所以c=a-b,c = -10
            Console.WriteLine(c);
            c = a < b ? a + b : a - b;  //因为a<b,所以c=a+b,c = 30
            Console.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,所以输出30
            b += a += 20;           //此处先让之前已经变为30的 a 再加20,a=50
            Console.WriteLine(a);   //此处a输出为50
            Console.WriteLine(b);   //然后b在加上a=50的值,所以b输出为60

 运行结果:

 

2.6 运算符优先级:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

七.(1)堆排序--前传

目录 七.(1)堆排序--前传 20-堆排序前传-树的基础知识 根节点 叶子节点 树的深度(高度) 树的 度 孩子节点/父亲节点 子树 21.堆排序前传-二叉树的基础知识 二叉树的存储方式: 22-堆排序前传-堆和堆的向下调整 什么是堆? 堆的向下调整性质 23-堆排序的过程演示 七…

Android Preference简单介绍

Android Preference简单介绍 文章目录 Android Preference简单介绍一、前言二、Preference 简单介绍二、PreferenceScreen和SwitchPreference 简单示例2、相关demo代码示例&#xff08;1&#xff09;SettingsActivity.Java&#xff08;2&#xff09;layout\settings_activity.x…

redis复习笔记07(小滴课堂)

在线教育-天热销视频榜单实战-List数据结构设计 我们先随机获取整个列表的内容。 我们模拟一个去添加数据的接口&#xff1a; 运行&#xff1a; 我们可以看到这里的数据。 我们现在启动我们的应用和controller&#xff1a; 就可以查到我们的数据了。 我们进行人工操作位&…

基于unbantu的nginx的配置

目录 前言: 1.安装nginx并进行测试 1.1使用nginx -v 命令查看版本 1.2开启服务 查看端口 1.3测试 2.nginx的静态资源访问配置 2.1创建静态资源存放的目录 2.2写入目录中测试文件对应的内容 2.3修改配置文件 2.4 测试 3.虚拟主机配置 3.1创建目录 3.2写入测试…

PPP MP配置

一.添加接口 每个路由器中添加2SA接口 二.配置IP地址 1.在r2和r3上创建MP [r2]int Mp-group 0/0/0 [r2-Mp-group0/0/0] [r3]int Mp-group 0/0/0 [r3-Mp-group0/0/0] 2.把1中上的接口加入上一步创建的MP [R2]int Serial 3/0/1 [R2-Serial3/0/1]ppp mp Mp-group 0/0/0 [R2]i…

Learn OpenGL 24 点光源阴影

点光源阴影 上个教程我们学到了如何使用阴影映射技术创建动态阴影。效果不错&#xff0c;但它只适合定向光&#xff0c;因为阴影只是在单一定向光源下生成的。所以它也叫定向阴影映射&#xff0c;深度&#xff08;阴影&#xff09;贴图生成自定向光的视角。 本节我们的焦点是…

整数和浮点数分别在内存中的存储

目录 一、整数在内存中的存储二、浮点数在内存中的存储2.1存储2.2取2.2.1 E不全为0或者不全为12.2.2 E全为02.2.3 E全为1 三、题目解析 一、整数在内存中的存储 对于整形来说&#xff1a;数据存放内存中其实存放的是补码。 原因在于&#xff0c;使用补码&#xff0c;可以将符号…

Redis 6和7:探索新版本中的新特性

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! Redis&#xff0c;作为开源的内存数据结构存储系统&#xff0c;以其高性能、丰富的数据结构和广泛的应用场景而深受开发者喜爱。随…

面试题:Java中的类加载器

1. 什么是类加载器&#xff0c;类加载器有哪些? 要想理解类加载器的话&#xff0c;务必要先清楚对于一个Java文件&#xff0c;它从编译到执行的整个过程。 类加载器&#xff1a;用于装载字节码文件(.class文件)运行时数据区&#xff1a;用于分配存储空间执行引擎&#xff1a;…

Zabbix学习(二)

上一篇文章中&#xff0c;我们搭建完了zabbix服务端和客户端&#xff0c;这一章介绍下具体的使用&#xff0c;下面先介绍几个概念。 主机&#xff1a;要监控的主机监控项&#xff1a;你要监控cpu还是内存触发器&#xff1a;当cpu使用率超过多少报警动作&#xff1a;cpu报警了&…

Python安装手册

Python安装手册 一、基本说明二、版本对比三、Python解析器 一、基本说明 Python是一种跨平台的计算机程序设计语⾔。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语⾔。 最初被设计用于编写⾃动化脚本Shell&#xff08;适用于Linux操作系统&#xff09;&am…

设计模式|工厂模式

文章目录 1. 工厂模式的三种实现2. 简单工厂模式和工厂方法模式示例3. 抽象工厂模式示例4. 工厂模式与多态的关系5. 工程模式与策略模式的关系6. 面试中可能遇到的问题6.1 **工厂模式的概念是什么&#xff1f;**6.2 **工厂模式解决了什么问题&#xff1f;**6.3 **工厂模式的优点…

【Objective -- C】—— GCD(1)(Grand Central Dispatch)

【Objective -- C】—— GCD&#xff08;1&#xff09;&#xff08;Grand Central Dispatch&#xff09; GCD1. 什么是GCD2.多线程编程线程多线程的理解多线程的优点 3.任务和队列任务同步执行和异步执行 队列串行队列和并发队列 GCD的API1.Dispatch QueueDispatch Queue的分类…

客户管理系统功能大揭秘!助您了解其核心作用!

早在2019年&#xff0c;中国已经快速迈向服务经济时代 客户管理一直是各行业管理者关心的话题&#xff0c;在数字化时代&#xff0c;如何做好客户管理&#xff1f;很多人说可以尝试客户管理系统&#xff0c;那么今天大家就一窥客户管理系统的庐山真面目。 一、什么是客户管理系…

复试编程练习题(from 牛客网)

考试时候可能没有VS,但codeblocks是必备的。 下面总结一些常用的快捷键。 CtrlEnter&#xff1a;光标移至行尾ShiftEnter&#xff1a;光标跳到下一行CtrlD&#xff1a;直接复制粘贴当前行CtrlL&#xff1a;删除当前行F9&#xff1a;buildrun。CtrlShiftC&#xff1a;注释掉当…

网络安全实训Day9

写在前面 访问控制和防火墙桌面端安全检测与防御 网络安全实训-网络安全技术 网络安全概述 访问控制 定义&#xff1a;通过定义策略和规则来限制哪些流量能经过防火墙&#xff0c;哪些流量不能通过。本质是包过滤 可以匹配的元素 IP协议版本 源区域和目的区域 源IP地址和目…

【C++那些事儿】C++模板编程入门:构建可重用组件的利器

&#x1f4f7; 江池俊&#xff1a;个人主页 &#x1f525; 个人专栏&#xff1a;✅C那些事儿 ✅Linux技术宝典 &#x1f305; 此去关山万里&#xff0c;定不负云起之望 文章目录 1. 泛型编程2. 函数模板2.1 函数模板概念2.1 函数模板格式2.3 函数模板的原理2.4 函数模板的实…

基于python+vue成都旅游网flask-django-php-nodejs

本篇论文对成都旅游网的需求分析、功能设计、系统设计进行了较为详尽的阐述&#xff0c;并对系统的整体设计进行了阐述&#xff0c;并对各功能的实现和主要功能进行了说明&#xff0c;并附上了相应的操作界面图。 语言&#xff1a;Python 框架&#xff1a;django/flask 软件版本…

select , poll, epoll思维导图

目录 1. 总的框架结构 2. select 3. poll 4. epoll 1. 总的框架结构 2. select

【C语言】自定义类型

1、内存对齐&#xff08;必考&#xff09; 1.1结构体内存对齐 结构体的对齐规则&#xff1a; 1. 第一个成员在与结构体变量偏移量为0的地址处。 2. 其他成员变量要对齐到某个数字&#xff08;对齐数&#xff09;的整数倍的地址处。 对齐数 编译器默认的一个对齐数 与 该成员大…