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
相关推荐
bryant_meng15 分钟前
【python】OpenCV—Image Moments
开发语言·python·opencv·moments·图片矩
若亦_Royi39 分钟前
C++ 的大括号的用法合集
开发语言·c++
资源补给站2 小时前
大恒相机开发(2)—Python软触发调用采集图像
开发语言·python·数码相机
m0_748247552 小时前
Web 应用项目开发全流程解析与实战经验分享
开发语言·前端·php
eybk2 小时前
Pytorch+Mumu模拟器+萤石摄像头实现对小孩学习的监控
学习
6.942 小时前
Scala学习记录 递归调用 练习
开发语言·学习·scala
FF在路上3 小时前
Knife4j调试实体类传参扁平化模式修改:default-flat-param-object: true
java·开发语言
码农君莫笑3 小时前
使用blazor开发信息管理系统的应用场景
数据库·信息可视化·c#·.net·visual studio
众拾达人3 小时前
Android自动化测试实战 Java篇 主流工具 框架 脚本
android·java·开发语言
皓木.3 小时前
Mybatis-Plus
java·开发语言