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

news2024/12/24 20:36:18

现在开始我的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 运算符优先级:

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

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

相关文章

QTabWidget的tabbar不同方向显示 文字方向设置 图标跟随变化 实现方式 qt控件绘制原理

先来看结果图&#xff1a;&#xff08;参考博客&#xff1a;QTabWidget中tab页文本水平或垂直设置_pyqt tab_widget.settabposition(qtabwidget.west) 字体-CSDN博客&#xff09; 从图中可知&#xff0c;"普通"是qt自己的样式&#xff0c;但是很明显&#xff0c;在垂…

Ubuntu18.04桌面版设置静态IP地址

引用: Ubuntu配置静态IP_ubuntu配置静态ip地址-CSDN博客 正文 默认Unbuntu 18.04 Desktop桌面版使用 netplan 管理网卡网络地址。使用Unbuntu 18.04 桌面版配置&#xff0c;可以通过桌面上的设置图标配置网卡的静态IP地址。 点击桌面右上角下拉框&#xff0c;点击“设置”按…

蓝桥杯(2):python基础算法【上】

时间复杂度、枚举、模拟、递归、进制转换、前缀和、差分、离散化 1 时间复杂度 重要是看循环&#xff0c;一共运行了几次 1.1 简单代码看循环 #时间复杂度1 n int(input()) for i in range(1,n1):for j in range(0,i):pass ###时间复杂度&#xff1a;123....nn(1n)/2 所以…

面试题 之 react

1.说说对react的理解 1️⃣是什么 React是用于构建用户界面的 JavaScript 库,遵循组件设计模式、声明式编程范式和函数式编程概念&#xff0c;更高效使用虚拟 DOM 来有效地操作 DOM &#xff0c;遵循从高阶组件到低阶组件的单向数据流。 react 类组件使用一个名为 render() 的方…

JAVA实战开源项目:大病保险管理系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统配置维护2.2 系统参保管理2.3 大病保险管理2.4 大病登记管理2.5 保险审核管理 三、系统详细设计3.1 系统整体配置功能设计3.2 大病人员模块设计3.3 大病保险模块设计3.4 大病登记模块设计3.5 保险审核模块设计 四、…

面试算法-88-反转链表

题目 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 解 class Solution {public ListNode reverseList(ListNode head) {if(head null || hea…

chatGPT中文在线版本(亲测可用

ChatGPT是一个先进的自然语言处理模型&#xff0c;由OpenAI开发。它通过深度学习技术训练而成&#xff0c;可以进行对话、回答问题等多种自然语言处理任务。对于学生、开发者、研究人员和任何对人工智能感兴趣的人来说&#xff0c;这是一个非常有用的工具。 最近找到一个国内可…

【算法篇】逐步理解动态规划1(斐波那契数列模型)

目录 斐波那契数列模型 1. 第N个泰波那契数 2.使用最小花费爬楼梯 3.解码方法 学过算法的应该知道&#xff0c;动态规划一直都是一个非常难的模块&#xff0c;无论是状态转移方程的定义还是dp表的填表&#xff0c;都非常难找到思路。在这个算法的支线专题中我会结合很多力…

赋能数据收集:从机票网站提取特价优惠的JavaScript技巧

背景介绍 在这个信息时代&#xff0c;数据的收集和分析对于旅游行业至关重要。在竞争激烈的市场中&#xff0c;实时获取最新的机票特价信息能够为旅行者和旅游企业带来巨大的优势。 随着机票价格的频繁波动&#xff0c;以及航空公司和旅行网站不断推出的限时特价优惠&#xff…

chrome浏览器插件extension开发中content内容脚本和background脚本通讯

有时候我们想监听页面中的数据变化&#xff0c;然后将监听到的数据传递给background脚本处理&#xff0c;比如根据不同的数据&#xff0c;来处理不同的业务逻辑&#xff0c;存储到服务器&#xff1f;或者控制浏览器显示效果&#xff1f;都可以&#xff0c;问题的重点是怎么让co…

【python 装饰器 - 重试】做一个简易重试装饰器,如果函数执行错误则会自动重新执行,可设置重试次数,对爬虫比较友好

文章日期&#xff1a;2024.03.19 使用工具&#xff1a;Python 类型&#xff1a;装饰器 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解密处理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js 标准算法&#xff09;&…

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

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

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

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

C语言数据结构之归并排序

疏雨池塘见 微风襟袖知 目录 归并排序的介绍 基本思想 时间复杂度分析 ⭐归并排序步骤 空间复杂度分析 代码展示 ✨归并排序的非递归 代码展示 总结&#x1f525; 归并排序的介绍 归并排序&#xff0c;是创建在归并操作上的一种有效的排序算法。算法是采用分治法&#xff…

Linux Ncurses库部分函数使用说明

目录 1. initscr&#xff08;&#xff09;函数 2. endwin&#xff08;&#xff09;函数 3. curs_set()函数 4.noecho()函数 5. keypad()函数 6. start_color()函数 7.init_pair()函数 8.getch()函数 9.move()函数 10.addch()函数 11. refresh()函数 12.inch()函数…

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

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

php搭建websocket

1.项目终端执行命令&#xff1a;composer require topthink/think-worker 2.0.x 2.config多出三个配置文件&#xff1a; 3.当使用php think worker:gateway命令时&#xff0c;提示不支持Windows。 4.打包项目为zip格式 5.打包数据库 6.阿里云创建记录 7.宝塔面板新增站点…

揭秘海外谷歌关键词优化细分人群的3个独家技巧--大舍传媒

揭秘海外谷歌关键词优化细分人群的3个独家技巧--大舍传媒 引言 在当今数字化的时代&#xff0c;拥有一个强大的线上存在是成功的关键之一。而在谷歌搜索引擎中&#xff0c;关键词优化是提高流量增长率的重要策略。本文将揭示海外谷歌关键词优化的三个独家技巧&#xff0c;帮助…

MySQL的事务深入理解和存储系统

目录 一、事务的基本理论 1.事务的隔离 1.1事务之间的相互影响 1.2事物隔离级别 2.查询和设置事物隔离级别 2.1查询全局事务隔离级别 2.2查询会话事物隔离级别 2.3设置全局事务隔离级别 2.4设置会话事务隔离级别 ​编辑3.事务控制语句 ​编辑3.1提交事务 ​编辑3.2…

CSP-S 真题:格雷码

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