当前位置: 首页 > news >正文

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;
  1. 当控件离开 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 基础学习

学习视频地址&#xff1a;https://www.bilibili.com/video/BV1hx4y1G7C6?p3&vd_source986db470823ebc16fe0b3d235addf050 开发工具&#xff1a;Visual Studio 2022 Community 基础框架&#xff1a;.Net 6.0 下载创建过程略 .Net和.Framework 区别是Net是依赖项&#xff…...

QT里使用sqlite的问题,好多坑

1. 我使用sqlite&#xff0c;开发机上好好的&#xff0c;测试机上却不行。后来发现是缺少驱动&#xff08;Driver not loaded Driver not loaded&#xff09;&#xff0c;代码检查了又检查&#xff0c;发现应该是缺少dll文件&#xff08;系统不提示&#xff0c;是自己使用 QMes…...

openGauss学习笔记-59 openGauss 数据库管理-相关概念介绍

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

Nginx安装与部署

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

Linux中Tomcat发布war包后无法正常访问非静态资源

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

大数据、AI和云原生:引领未来软件开发的技术演进

文章目录 **1. 数据驱动的创新&#xff1a;****2. 智能化应用的兴起&#xff1a;****3. 云原生的敏捷和可扩展性&#xff1a;****4. 实时性和即时性&#xff1a;****5. 数据隐私和安全&#xff1a;****6. 跨平台和跨设备&#xff1a;****7. 自动化和智能编程&#xff1a;****8.…...

Text-to-SQL小白入门(四)指令进化大模型WizardLM

摘要 本文主要对大模型WizardLM的基本信息进行了简单介绍&#xff0c;展示了WizardLM取得的优秀性能&#xff0c;分析了论文的核心——指令进化方法。 论文概述 基本信息 英文标题&#xff1a;WizardLM: Empowering Large Language Models to Follow Complex Instructions中…...

浅谈红队资产信息收集经验

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

list根据对象中某个字段属性去重Java流实现

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

软件架构设计(三) B/S架构风格-层次架构(一)

层次架构风格从之前的两层C/S到三层C/S,然后演化为三层B/S架构,三层B/S架构之后仍然在往后面演化,我们来看一下层次架构演化过程中都有了哪些演化的架构风格呢? 而我们先简单了解一下之前的层次架构风格中分层的各个层次的作用。 表现层:由于用户进行交互,比如MVC,MVP,…...

大端字节和小端字节

介绍 大端字节序&#xff08;Big-Endian&#xff09;和小端字节序&#xff08;Little-Endian&#xff09;是在计算机系统中用来表示多字节数据类型&#xff08;如整数、浮点数等&#xff09;的存储方式。字节序指的是在内存中多字节数据的存放顺序&#xff0c;即哪个字节在前&…...

(10)(10.8) 固件下载

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

vue实现列表自动滚动效果

效果如图&#xff1a; 1.下载插件 npm install vue-seamless-scroll --save 2.在main.js中引入注册 import scroll from vue-seamless-scroll Vue.use(scroll) 3.在页面中使用&#xff08;写一个固定的表头 el-table:show-header"status" 设置为false,自带的表头不…...

如何通过构建遥感光谱反射信号与地表参数之间的关系模型来准确估算植被参数?植被参数光学遥感反演方法(Python)及遥感与生态模型数据同化算法

目录 专题一 植被参数遥感反演理论 专题二 植被叶片及冠层反射率模拟与处理 专题三 植被遥感模型参数敏感性分析 专题四 基于查找表(LUT)方法反演植被参数 专题五 基于优化算法反演植被参数 专题六 基于机器学习反演植被参数 专题七 遥感数据同化理论 专题八 同化遥感反…...

持续集成与持续交付(CI/CD):探讨在云计算中实现快速软件交付的最佳实践

文章目录 持续集成&#xff08;CI&#xff09;的最佳实践持续交付&#xff08;CD&#xff09;的最佳实践云计算环境下的特别注意事项 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 ✨收录专栏&am…...

【LeetCode题目详解】第九章 动态规划part02 62.不同路径 63. 不同路径 II day39补

本文章代码以c为例&#xff01; 一、力扣第62题&#xff1a;不同路径 题目&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;…...

四维轻云助力在线管理、展示及分享多种地理空间数据

《四维轻云》是一款轻量化的地理空间数据管理云平台&#xff0c;支持倾斜摄影模型、激光点云、数字高程模型及正射影像等多种地理空间数据的在线管理、展示及分享。目前&#xff0c;平台有项目管理、数据上传、场景搭建、发布分享、素材库等功能模块&#xff0c;支持多人在线协…...

CMake 学习笔记

一直想了解CMake&#xff0c;但是不知从何入门。最近看了CMake 官方的Tutorial&#xff0c;感觉的确很适合入门。 首先要安装CMake, 安装步骤: 直接去下载最新版Download | CMakemacos 点开CMake 后&#xff0c;遵循“How to Install For Command Line Use” 菜单项&#xff0…...

docker高级(DockerFile解析)

1、构建三步骤 编写Dockerfile文件 docker build命令构建镜像 docker run依镜像运行容器实例 2、DockerFile构建过程解析 Dockerfile内容基础知识 1&#xff1a;每条保留字指令都必须为大写字母且后面要跟随至少一个参数 2&#xff1a;指令按照从上到下&#xff0c;顺序执行…...

抽象类实现接口的意义

文章目录 前言一、抽象类和接口对比二、举例说明三种情况1.接口实现类接口 2.抽象类实现类抽象类实现类(子类) 3.抽象类实现接口接口抽象类三个实现类 总结 前言 抽象类和接口其实都是抽象的一种,那么他俩有何异同呢? 抽象类实现接口的意义何在? 一、抽象类和接口对比 接口…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...