C#基础——语法学习

news2024/11/23 11:38:16

C#的基本语法

在介绍基本语法之前我们先来大概讲一下创建好的这些文件都是做什么的

在这里插入图片描述

.sln文件:将项目和解决方案项结合到一起
.vs文件夹:用来存储当前解决方案中关于用户的设置和自定义项,比如断点,主题等。(一般都将其隐藏起来)
目录文件

在这里插入图片描述

项目目录:
bin文件夹:项目的开发文件,里面包含了Debug(调试)Release(发布)
obj文件夹:项目的配置项文件,里面包含了项目的页面配置信息
Properties:设置
.csproj:每个项目中都会包含一个MSBulid的项目文件,(c#中后缀是 .csproj Visual Basic 中后缀是 .vbproj数据库项目中后缀是 .dbproj)
App.config:当前项目配置项
Program.cs:入口文件(项目的入口)
以.cs后缀结尾的文件都是属于c#文件
// 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.单行注释

// Console.WriteLine(我是单行注释);

2.多行注释

     	/*
       * 我是多行注释1
       * 我是多行注释2
       * 我是多行注释3
       * 我是多行注释4
       */

3.标注

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

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

1.值类型(Value Type)
2.引用类型(Refercences types)
3.指针类型(Pointer)
数据类型的出现是为了让程序在存储数据的时候能够正确判断数据的特点,进行精准操作,
C#属于强类型语言,对数据类型有严格的要求
System.ValueType 值类型的派生类(所有的值类型都是从这个上面产生的)内存是系统分配好的

值类型

类型描述范围默认值
bool布尔值True 或 FalseFalse
byte8 位无符号整数0 到 2550
char16 位 Unicode 字符U +0000 到 U +ffff‘\0’
decimal128 位精确的十进制值,具有 28~29 个有效位数(-7.9 x 1028 到 7.9 x 1028) 100 到 280.0M
double64 位双精度浮点型(+/-)5.0 x 10-324 到 (+/-)1.7 x 103080.0D
float32 位单精度浮点型-3.4 x 1038 到 + 3.4 x 10380.0F
int32 位有符号整数类型-2,147,483,648 到 2,147,483,6470
long64 位有符号整数类型-9,223,372,036,854,775,808 到 9,223,372,036,854,775,8070L
sbyte8 位有符号整数类型-128 到 1270
short16 位有符号整数类型-32,768 到 32,7670
uint32 位无符号整数类型0 到 4,294,967,2950
ulong64 位无符号整数类型0 到 18,446,744,073,709,551,6150
ushort16 位无符号整数类型0 到 65,5350

默认值

在声明变量时,必须要同时给定初始值,否则无法使用
可以使用 default 表示默认值
数字的默认值都是 0
布尔值的默认值是 false
字符和字符串都是空字符 ‘\0’ “”

string x = default;
Console.WriteLine(x);

// 数字的值也有最大最小值概念
int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine(max); //2147483647
Console.WriteLine(min); //-2147483648

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

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

相关文章

Swin UNetR:把 UNet 和 Swin Transformer 结合

Swin UNetR:把 UNet 和 Swin Transformer 结合 网络结构使用指南 前置知识:Swin Transformer:将卷积网络和 Transformer 结合 Swin UNetR 结合 Swin Transformer 的上下文建模能力和 U-Net 的像素级别预测能力,提高语义分割任务的…

2010年全国地质灾害隐患点数据,shp/excel格式,含灾害类型、等级、经纬度坐标等字段

基本信息. 数据名称: 全国地质灾害隐患点数据 数据格式: Shp、Excel 数据时间: 2010年 数据几何类型: 点 数据坐标系: WGS84坐标系 数据来源:网络公开数据 数据字段: 序号字段名称字段说明1xzqhdm行政区划代码2xzqhmc行政区划名称3mc名称4z…

Halcon一维码识别

文章目录 参数连接halcon 自带案例1(设置校验位识别条码)Halcon 自带案例2(设置对比度识别条码)Halcon 自带案例3(存在曲面变形)Halcon 自带案例4(设置条码扫描线)Halcon 自带案例5&…

HarmonyOS第一课ArkTS开发语言(TypeScript快速入门)

编程语言介绍 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。要了解什么是ArkTS&…

解决设备维修管理问题,易点易动来帮忙!

设备维修管理常常存在一些问题,给企业带来不便和困扰: 1)维修信息不及时准确,导致维修延误或错过重要维护时机; 2)纸质记录容易丢失或难以管理,使得维修历史不完整; 3&#xff09…

MISC之LSB

LSB隐写 简介 LSB隐写(Least Significant Bit Steganography)是一种隐写术,它通过将秘密信息嵌入到图像、音频或视频等多媒体文件中的最低有效位中来隐藏信息。在数字图像中,每个像素由红、绿、蓝三个通道的颜色值组成。每个颜色…

c语言插入排序算法(详解)

插入排序是一种简单直观的排序算法,其主要思想是将一个待排序的元素插入到已经排好序的部分的合适位置。 插入排序的原理如下: 将序列分为两部分:已排序部分和未排序部分。初始时,已排序部分只包含第一个元素,未排序…

Unity 射线检测(Raycast)检测图层(LayerMask)的设置

目录 主要内容 拓展: 主要内容 Raycast函数有很多重载(函数的重载根据函数的参数来决定) 这里只涉及这个重载,其余重载可以很方便得在Visual Studio中看源码获取; public static bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hit…

成绩统计(oj题)

一道考验细节的题 最后是&#xff1f;&#xff1a;运算符用错了 代码如下&#xff1a; #include<stdio.h> #include<string.h> typedef struct Grade{int num;int inv; }Grade; Grade tmp[10]; int n, m, g, interval[10] {0};int main(void) {scanf("%d%d…

智能优化算法应用:基于鸟群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于鸟群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于鸟群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鸟群算法4.实验参数设定5.算法结果6.参考文献7.MA…

Vue3-15-事件处理的基本使用详解

什么是事件处理 事件处理 &#xff1a; 就是对页面上的事件进行捕获并进行逻辑上的处理。 例如 &#xff1a; 点击了一个按钮&#xff0c;捕获点击事件&#xff0c;并进行响应的逻辑处理。vue3中的事件处理的语法 主要使用到的是 v-on 指令&#xff0c; 这个指令的语法糖&…

【教程】如何将重要文件进行混淆和加密

怎么保护苹果手机移动应用程序ipa中文件安全&#xff1f; ios应用程序存储一些图片&#xff0c;资源&#xff0c;配置信息&#xff0c;甚至敏感数据如用户信息、证书、私钥等。这些数据怎么保护呢&#xff1f;可以使用iOS提供的Keychain来保护敏感数据&#xff0c;也可以使用加…

机器学习---TF-IDF算法

1、TF-IDF TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文本频率)。TF指词频&#xff0c;IDF指的是逆文本频率。TF-IDF是一种用于信息检索与数据挖掘的常用加权技术&#xff0c;可以评估一个词在一个文件集或者一个语料库中对某个文件的重要程度。一个词语在一篇…

创邻科技上榜中国信通院《高质量数字化转型产品及服务全景图》

近年来&#xff0c;数字化转型浪潮浩浩荡荡&#xff0c;已成为企业高质量发展的必由之路。 但是企业的数字化转型之路并不简单。一方面&#xff0c;企业对数字化转型仍面临着“战略缺位”“能力难建”“价值难现”等问题&#xff1b;另一方面&#xff0c;市场上众多的数字化转…

Day58力扣打卡

打卡记录 下一个更大元素 IV&#xff08;单调栈 x2&#xff09; 链接 class Solution:def secondGreaterElement(self, nums: List[int]) -> List[int]:ans [-1] * len(nums)s []t []for i, x in enumerate(nums):while t and nums[t[-1]] < x:ans[t.pop()] x # t…

班主任,再也不愁怎么给学生发成绩了

作为班主任&#xff0c;我们时常面临着如何有效地将学生的成绩信息传达给家长的问题。传统的纸质成绩单邮寄方式不仅效率低下&#xff0c;而且容易丢失&#xff0c;难以保证信息的及时性和准确性。现在&#xff0c;有了微信「群发成绩」小程序&#xff0c;班主任们终于可以摆脱…

ISP去噪(2)_np 噪声模型

#灵感# ISP 中的去噪&#xff0c;都需要依赖一个噪声模型。很多平台上使用采集的raw进行calibration&#xff0c;可以输出这个模型&#xff0c;通常称为 noise profile。 目录 名词解释&#xff1a; 标定方法&#xff1a; 校准出的noise profile: noise profile 作用域&am…

异常当做业务逻辑处理严重影响性能

一:背景 在项目应该或多或少的见过有人把异常当做业务逻辑处理的情况(┬_┬),比如说判断一个数字是否为整数,就想当然的用try catch包起来,再进行 int.Parse,如果抛异常就说明不是整数,简单粗暴,也不需要写正则或者其他逻辑,再比如一个字符串强制转化为Enum,直接用Enu…

Linux中的堡垒机搭建以及使用

JumpServer搭建 安装应用包 curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash 一路回车即可安装完毕&#xff08;可根据需求更改&#xff09; JumpServer的 配置文件路径 /opt/jumpserver/config/config.tx…

python request 不走代理proxy

遇到问题如&#xff1a; requests.exceptions.ProxyError: HTTPSConnectionPool(host‘quake.360.net’, port443): Max retries exceeded with url: /api/v3/search/quake_service (Caused by ProxyError(‘Cannot connect to proxy.’, OSError 解决如下&#xff1a; 一般…