C#基础——语法学习

C#的基本语法

在介绍基本语法之前我们先来大概讲一下创建好的这些文件都是做什么的
复制代码
.sln文件:将项目和解决方案项结合到一起
.vs文件夹:用来存储当前解决方案中关于用户的设置和自定义项,比如断点,主题等。(一般都将其隐藏起来)
目录文件
复制代码
项目目录:
bin文件夹:项目的开发文件,里面包含了Debug(调试)Release(发布)
obj文件夹:项目的配置项文件,里面包含了项目的页面配置信息
Properties:设置
.csproj:每个项目中都会包含一个MSBulid的项目文件,(c#中后缀是 .csproj Visual Basic 中后缀是 .vbproj数据库项目中后缀是 .dbproj)
App.config:当前项目配置项
Program.cs:入口文件(项目的入口)
以.cs后缀结尾的文件都是属于c#文件
csharp 复制代码
// using 引入、导入 System系统模块
using System;
// System.Collections(集合).Generic(这是一个泛型类)支持对应的代码
// Linq:(Language intergrated query)语言集合查询,提示
// Text:文本程序集
// 组件工作队列

// namespace 命名空间,相当于在这一个空间内的代码都可以进行互相的"交流访问"
namespace _1_语法学习 {
  // internal 修饰符
  // class 类
  // Program 文件名称,类名
  // c#中的{} 用途主要是包裹一定量的代码,所以书写的时候需要注意。
  internal class Program {
    // static:静态修饰符
    // void:属于方法返回类型的修饰
    // Main:主函数,也叫做入口函数,程序只要启动必须要经过的函数
    static void Main(string[] args) {
      // 因为是控制台应用,所以可以使用Console对象的Write方法查看运行结果
      Console.WriteLine("上午项目架构讲解"); //输出一行
      Console.Write("进行到第二节课了"); //输出内容,不换行
      Console.Write("正在继续");
      //Console.ReadKey(); // 获取一个输入节点

      // 描述了一个byte类型的变量,名字叫age,并赋值32
      byte age = 32;
      Console.WriteLine(age);
      //Console.WriteLine("请输入你的姓名:");
      // 会捕获当前控制台上的输入,然后返回出来
      // string表示长串的char,所以叫做字符串,用来保存一段话
      //string name = Console.ReadLine();
      //Console.WriteLine(name);

      // 浮点数三者的对比
      // float 占了四个字节,后面必须要加F或者f
      float f1 = 10.115555555f;
      // 占8个字节,后面可以加D或d,也可以不加
      double d1 = 10.115555555776;
      // 不要求精度的时候使用float,一般精度使用double,高精度使用decimal
      decimal d2 = 10.11555555555555555555m;

      //字符内容
      char c1 = 'B';
      char c2 = '中';
      char c3 = '1';
      char c4 = ' ';
      //不管数据类型是什么,只能代表单字符

      // 字符串:特殊的引用类型,字符串赋值的时候是值类型的数据进行深拷贝
      // 而引用类型一般都是浅拷贝
      string str = "abc"; //表示输出一段内容

      // \n 代表的是转移字符 相当于换行
      string str2 = "n\nn";
      Console.WriteLine(str2);
      Console.ReadLine();

      // c# 也提供一些功能性的工具类。例如 DateTime日期
      DateTime now = DateTime.Now;
      Console.WriteLine("现在的时间为:" + now);
      //上述着一些变量描述的方式都属于常规变量的描述,特点是使用小驼峰的方式
      // int intNumber, 从第二个单词开始,首字母大写
      //如果是多个变量类型相同的时候,可以简写
      int a = 20, b = 30, c = 40;

      // 常量:一旦声明之后就不能再去修改了,名字要采用大驼峰的方式
      const double PI = 3.1415926;
      Console.WriteLine(PI);

      //指针类型:一般都会以new开头,先分配内存,再去赋值
      Object people = new Object();
    }
  }
}

常用快捷键

ctrl + k + d :快速对其代码

ctrl + k + c :注释代码

ctrl + k + u :取消注释代码

f1:查看帮助文档

C# 提供了三种注释方式

1.单行注释

csharp 复制代码
// Console.WriteLine(我是单行注释);

2.多行注释

csharp 复制代码
     	/*
       * 我是多行注释1
       * 我是多行注释2
       * 我是多行注释3
       * 我是多行注释4
       */

3.标注

csharp 复制代码
#region 标注一般用于对一段代码进行解释说明
     Console.WriteLine("这里是标注");
     Console.WriteLine("region 开始标注");
     Console.WriteLine("endregion 结束标注");
#endregion

C#语法中内置了数据类型,分为了三类

1.值类型(Value Type)

2.引用类型(Refercences types)

3.指针类型(Pointer)

数据类型的出现是为了让程序在存储数据的时候能够正确判断数据的特点,进行精准操作,

C#属于强类型语言,对数据类型有严格的要求

System.ValueType 值类型的派生类(所有的值类型都是从这个上面产生的)内存是系统分配好的

值类型

类型 描述 范围 默认值
bool 布尔值 True 或 False False
byte 8 位无符号整数 0 到 255 0
char 16 位 Unicode 字符 U +0000 到 U +ffff '\0'
decimal 128 位精确的十进制值,具有 28~29 个有效位数 (-7.9 x 1028 到 7.9 x 1028) 100 到 28 0.0M
double 64 位双精度浮点型 (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 0.0D
float 32 位单精度浮点型 -3.4 x 1038 到 + 3.4 x 1038 0.0F
int 32 位有符号整数类型 -2,147,483,648 到 2,147,483,647 0
long 64 位有符号整数类型 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 0L
sbyte 8 位有符号整数类型 -128 到 127 0
short 16 位有符号整数类型 -32,768 到 32,767 0
uint 32 位无符号整数类型 0 到 4,294,967,295 0
ulong 64 位无符号整数类型 0 到 18,446,744,073,709,551,615 0
ushort 16 位无符号整数类型 0 到 65,535 0

默认值

在声明变量时,必须要同时给定初始值,否则无法使用

可以使用 default 表示默认值

数字的默认值都是 0

布尔值的默认值是 false

字符和字符串都是空字符 '\0' ""

csharp 复制代码
string x = default;
Console.WriteLine(x);

// 数字的值也有最大最小值概念
int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine(max); //2147483647
Console.WriteLine(min); //-2147483648
相关推荐
Scott9999HH3 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
EIP低代码平台4 小时前
EIP 低代码平台 - 角色维护
低代码·c#·权限·工作流·netcore
码智社4 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海4 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖5 小时前
JDK 26 新特性详解
java·开发语言
马优晨6 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
a1117767 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
我的xiaodoujiao7 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
人邮异步社区8 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大8 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf