WPF C# .NET7 基础学习
学习视频地址:https://www.bilibili.com/video/BV1hx4y1G7C6?p=3&vd_source=986db470823ebc16fe0b3d235addf050
开发工具:Visual Studio 2022 Community
基础框架:.Net 6.0
下载创建过程略
.Net和.Framework
区别是Net是依赖项,Framework是引用
using:
1.定义一个命名空间,最常用
不只包括using namespace,还用开头使用的using System.xxxx.xxxx
2.using static 指令:指定无需指定类型名称即可访问其静态成员的类型
using static System.Math;var = PI; // 直接使用System.Math.PI
3.起别名
using Project = PC.MyCompany.Project;
- 当控件离开 using 语句块时,将释放获取的 IDisposable 实例。 using 语句可确保即使在 using 语句块内发生异常的情况下也会释放可释放实例。
var numbers = new List<int>();
using (StreamReader reader = File.OpenText("numbers.txt"))
{string line;while ((line = reader.ReadLine()) is not null){if (int.TryParse(line, out int number)){numbers.Add(number);}}
}
程序执行从Main函数开始执行
简化一个大括号的方法只有namespace适用
等价于
C#基本语法
基本语法类似于C++和java;
0.区分大小写
0.1.与java不同,文件名可以和类名称不同
1.关键字:尽量不重名吧
2.注释.cs文件 使用//或/* sth */ 其中///可以作为引用时可以看到的注释
.xaml文件 <!-- sth->
变量
这种语法查一下:
长转短类型可转换,短转长不可转换。
字符串拼接
作用域
父节点资源可以供子节点使用,子节点的不能供同级子节点使用。
在类中声明变量,在类中方法中再次声明会覆盖类中声明的变量。
数组
1.数组声明需要使用new
关键字
2.声明数组时可以使用{}
初始化元素
3.声明数组之前没有使用{}
初始化数组,需要指定数组大小
4.声明初始化有元素的数组的时候,也可以指定数组大小。
数组转换
int.Parse
只支持从string转换成int,在2023版本,string只能是整数,小数会报错,然后转换成都double类型,则使用double.Parse
Convert.ToInt32,不完全遵循四舍五入,当正好为.5时,输出周围两数的偶数,其余数字输出正常。
Convert.ToInt32可以输出null,但是int.Parse只能处理非空string。
函数与方法
函数->对象的动作行为,计划好承担的作用,越单一越好。
命名规范大驼峰规则
参数设置和传参行为
参数:外部需要函数处理的数据
传参行为:个人理解,写不出来了
返回值设定int、void、Task啥的
参数修饰符
修饰符种类:
1.无修饰符,认为按值进行传递,被调用的方法收到原始数据的一份副本。
2.out:输出参数由被调用的方法赋值,被调用的方法没有给输出参数赋值会出现编译错误
3.ref: 调用者赋初值,可以由被调用方法可选的重新赋值,不赋初值编译错误
4.params:这个修饰符只能作为最后一个参数传入,作为一个可变数量的参数传入。
ref和out:
1.out传入参数必须在方法内修改,ref可修改可不修改
2.ref修饰的参数,在实参必修有初值时才能调用,ref修饰的不一定会给赋值。
封装案例
这部分简单,就是加个函数。
面向对象基础(OOP)
类和对象概念啥的
声明类
public class xxx{
}
声明属性
属性特殊,常用书写方法
public int xxx{get;set;}
有get字段,获取该属性的值;
有set字段,设置该属性的值;
类:
下面使用类的写法一致:
访问修饰符
public
:公有属性,所有类可以访问
private
:私有属性 当前类内部可以访问
protected
:受保护的 当前类以及继承它的子类可以访问
internal
:内部的 只限于本项目内访问,其他不可以访问
protected internal
:内部保护访问 只能时本项目内部或子类访问 其他类不能访问
类中的成员默认访问是私有的,类本身默认是internal
静态 使用static修饰,静态和属性可以通过类型直接获取,非静态必须通过实例化获取
一般情况不需要使用static,只有类型中有扩展方法的时候,例如传入参数是this string xxx时,只能将class的修饰换为static。
继承
继承东西太多了,多写多用
子类中的属性,父类得不到其中的属性。
子类转父类使用as可以得到null属性,可以加判断减少程序崩溃
接口(Interface)
C#一般只能单继承,一个类只能继承一个父类,但是接口可以让一个类拥有多个基类
构造函数没有返回值类型
多态还是利用接口,完成相似类型的输出
值类型和引用类型
值类型保存数据
引用类型存储其数据的引用
声明引用类型的关键字:
class
interface
delegate
record
C#提供的内置引用类型:
dynamic
object
string
值类型
结构类型:用于封装数据和相关功能:struct
枚举类型:一组,类似数组
整型、浮点、bool、char
值类型作为一种副本,重新占用空间,另一个改变不影响这个,类似{int i=1;int j=i;j++}j改变i不变,引用类型时j变化,i也变化
因为引用时直接按引用地址改变,改变地址内的值。
集合
数组在内存中连续存放,索引非常快,但是对于插入删除啥的太慢了,数组声明的时候就已经固定大小了。
ArrayList是用于数据存储和检索的专用类。是命名空间System。collectioons下的一部分。
按照其中存储的数组动态扩充与收缩(收缩指的时可以使用的索引,但是占用的大小只能不断扩大)。
声明时不需要指明长度。
方便进行删除,插入,添加。
ArrayList arr=new ArrayList;
ArrayList.add();
ArrayList.Insert(位置,数据);
ArrayList.RemoveAt(位置);
ArrayList.Remove(值);
ArrayList.RemoveRange(起始索引,个数);
劣势:在存储数据时使用object类型进行存储,不是类型安全的,可能出现类型不匹配的错误。
插入同一类型的数据,需要将其转换成原来的类型进行处理。
存储存在装箱和拆箱操作,性能低下。
装箱值类型隐式转换成引用类型
拆箱引用类型显示转换成值类型
List集合
声明list集合的时候,需要同时声明list集合中数据的
List<int> intList = new List<int>;
C#里的集合可以有相同的数据;
//等价于ArrayList,但是一般不建议
List<object> intList = new List<object>;
字典(Dictionary)
有键(key)和值(value),键唯一,但value不唯一,一个值可以由多个值对应。
熟悉foreach循环
相关文章:

WPF C# .NET7 基础学习
学习视频地址:https://www.bilibili.com/video/BV1hx4y1G7C6?p3&vd_source986db470823ebc16fe0b3d235addf050 开发工具:Visual Studio 2022 Community 基础框架:.Net 6.0 下载创建过程略 .Net和.Framework 区别是Net是依赖项ÿ…...
QT里使用sqlite的问题,好多坑
1. 我使用sqlite,开发机上好好的,测试机上却不行。后来发现是缺少驱动(Driver not loaded Driver not loaded),代码检查了又检查,发现应该是缺少dll文件(系统不提示,是自己使用 QMes…...

openGauss学习笔记-59 openGauss 数据库管理-相关概念介绍
文章目录 openGauss学习笔记-59 openGauss 数据库管理-相关概念介绍59.1 数据库59.2 表空间59.3 模式59.4 用户和角色59.5 事务管理 openGauss学习笔记-59 openGauss 数据库管理-相关概念介绍 59.1 数据库 数据库用于管理各类数据对象,与其他数据库隔离。创建数据…...

Nginx安装与部署
文章目录 一,说明二,下载三,Windows下安装1,安装2,启动3,验证 四,Linux下安装1,安装2,启动3,验证 五,Nginx配置 一,说明 Nginx是一款高性能Web和反向代理服务器,提供内存少,高并发,负载均衡和反向代理服务,支持windos和linux系统 二,下载 打开浏览器,输入地址: https://ngin…...

Linux中Tomcat发布war包后无法正常访问非静态资源
事故现象 在CentOS8中安装完WEB环境,首次部署WEB项目DEMO案例,发现可以静态的网页内容, 但是无法向后台发送异步请求,全部出现404问题,导致数据库数据无法渲染到界面上。 原因分析 CentOS请求中提示用来获取资源的连…...

大数据、AI和云原生:引领未来软件开发的技术演进
文章目录 **1. 数据驱动的创新:****2. 智能化应用的兴起:****3. 云原生的敏捷和可扩展性:****4. 实时性和即时性:****5. 数据隐私和安全:****6. 跨平台和跨设备:****7. 自动化和智能编程:****8.…...

Text-to-SQL小白入门(四)指令进化大模型WizardLM
摘要 本文主要对大模型WizardLM的基本信息进行了简单介绍,展示了WizardLM取得的优秀性能,分析了论文的核心——指令进化方法。 论文概述 基本信息 英文标题:WizardLM: Empowering Large Language Models to Follow Complex Instructions中…...

浅谈红队资产信息收集经验
文章目录 子公司资产收集备案号|官网收集子域名|ip收集fofa灯塔ARLX情报社区 资产确认目录扫描Google Hacking绕过CDNnmap端口扫描参数技巧其他常用工具 子公司资产收集 红蓝对抗中往往只会给你目标企业的名称,以及对应的靶标系统地址,而很少有直接从靶标…...

list根据对象中某个字段属性去重Java流实现
list根据对象中某个字段属性去重Java流实现? 在Java的流(Stream)中,你可以使用distinct方法来实现根据对象中某个字段属性去重的功能。要实现这个功能,你需要重写对象的hashCode和equals方法,以确保相同字段属性的对象被认为是相…...

软件架构设计(三) B/S架构风格-层次架构(一)
层次架构风格从之前的两层C/S到三层C/S,然后演化为三层B/S架构,三层B/S架构之后仍然在往后面演化,我们来看一下层次架构演化过程中都有了哪些演化的架构风格呢? 而我们先简单了解一下之前的层次架构风格中分层的各个层次的作用。 表现层:由于用户进行交互,比如MVC,MVP,…...
大端字节和小端字节
介绍 大端字节序(Big-Endian)和小端字节序(Little-Endian)是在计算机系统中用来表示多字节数据类型(如整数、浮点数等)的存储方式。字节序指的是在内存中多字节数据的存放顺序,即哪个字节在前&…...

(10)(10.8) 固件下载
文章目录 前言 10.8.1 固件 10.8.2 Bootloader 10.8.3 APM2.x Autopilot 10.8.4 许可证 10.8.5 安全 前言 固件服务器(firmware server)可提供所有飞行器的最新固件。其中包括: CopterPlaneRoverAntennaTrackerSub 本页提供了一些被视为&quo…...

vue实现列表自动滚动效果
效果如图: 1.下载插件 npm install vue-seamless-scroll --save 2.在main.js中引入注册 import scroll from vue-seamless-scroll Vue.use(scroll) 3.在页面中使用(写一个固定的表头 el-table:show-header"status" 设置为false,自带的表头不…...
如何通过构建遥感光谱反射信号与地表参数之间的关系模型来准确估算植被参数?植被参数光学遥感反演方法(Python)及遥感与生态模型数据同化算法
目录 专题一 植被参数遥感反演理论 专题二 植被叶片及冠层反射率模拟与处理 专题三 植被遥感模型参数敏感性分析 专题四 基于查找表(LUT)方法反演植被参数 专题五 基于优化算法反演植被参数 专题六 基于机器学习反演植被参数 专题七 遥感数据同化理论 专题八 同化遥感反…...

持续集成与持续交付(CI/CD):探讨在云计算中实现快速软件交付的最佳实践
文章目录 持续集成(CI)的最佳实践持续交付(CD)的最佳实践云计算环境下的特别注意事项 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏&am…...

【LeetCode题目详解】第九章 动态规划part02 62.不同路径 63. 不同路径 II day39补
本文章代码以c为例! 一、力扣第62题:不同路径 题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(…...

四维轻云助力在线管理、展示及分享多种地理空间数据
《四维轻云》是一款轻量化的地理空间数据管理云平台,支持倾斜摄影模型、激光点云、数字高程模型及正射影像等多种地理空间数据的在线管理、展示及分享。目前,平台有项目管理、数据上传、场景搭建、发布分享、素材库等功能模块,支持多人在线协…...
CMake 学习笔记
一直想了解CMake,但是不知从何入门。最近看了CMake 官方的Tutorial,感觉的确很适合入门。 首先要安装CMake, 安装步骤: 直接去下载最新版Download | CMakemacos 点开CMake 后,遵循“How to Install For Command Line Use” 菜单项࿰…...

docker高级(DockerFile解析)
1、构建三步骤 编写Dockerfile文件 docker build命令构建镜像 docker run依镜像运行容器实例 2、DockerFile构建过程解析 Dockerfile内容基础知识 1:每条保留字指令都必须为大写字母且后面要跟随至少一个参数 2:指令按照从上到下,顺序执行…...
抽象类实现接口的意义
文章目录 前言一、抽象类和接口对比二、举例说明三种情况1.接口实现类接口 2.抽象类实现类抽象类实现类(子类) 3.抽象类实现接口接口抽象类三个实现类 总结 前言 抽象类和接口其实都是抽象的一种,那么他俩有何异同呢? 抽象类实现接口的意义何在? 一、抽象类和接口对比 接口…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...

从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...

项目进度管理软件是什么?项目进度管理软件有哪些核心功能?
无论是建筑施工、软件开发,还是市场营销活动,项目往往涉及多个团队、大量资源和严格的时间表。如果没有一个系统化的工具来跟踪和管理这些元素,项目很容易陷入混乱,导致进度延误、成本超支,甚至失败。 项目进度管理软…...
MySQL基本操作(续)
第3章:MySQL基本操作(续) 3.3 表操作 表是关系型数据库中存储数据的基本结构,由行和列组成。在MySQL中,表操作包括创建表、查看表结构、修改表和删除表等。本节将详细介绍这些操作。 3.3.1 创建表 在MySQL中&#…...
Python打卡训练营学习记录Day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
Flask和Django,你怎么选?
Flask 和 Django 是 Python 两大最流行的 Web 框架,但它们的设计哲学、目标和适用场景有显著区别。以下是详细的对比: 核心区别:哲学与定位 Django: 定位: "全栈式" Web 框架。奉行"开箱即用"的理念。 哲学: "包含…...