C#学习 Day2

Python:由于目标计算机积极拒绝,无法连接 问题描述 今天想学习一下用Python的pandas库处理CSV文件,并绘制一些图形,在安装pandas时出现了一系列问题 首先是使用 pip install pandas 显示如下错误 找了半天也没找到什么解决办法,于是采用去下载安装包的方法进行安装,进入之后发现Python版本处写的并不是自己熟悉的Python 3.9.1之类的字样而是CP37之类的 经查阅后了解到这里的CP是指CPython,即用C语言写的Python解释器 。但是问题是下载了一个CP37的包在安装时显示 ... 阅读详情

类型

bool

  • System.Boolean的别名。
  • 只需要1 bit 存储空间,但运行时会使用1 byte 内存(运行时和处理器可以高效操作的最小的块)。
  • 针对数组,Framework 提供了 BitArray 类,(System.Collections),在这里每个 bool 值只占用1 bit 内存。

string

逐字字符串 verbatim string literal

  • 使用 @ 做前缀(写在双引号外面)。
  • 不支持转义字符(例: string a1 = “\\server\fileshare\helloworld.cs”; string a2 = @“\server\fileshare\helloworld.cs”;两个字符串的值相同)。
  • 支持多行字符串。
  • 在字符串里面输入双引号时,需输入两次双引号(例:string xml = @“<customer id=”“123"”>";)。

字符串插值 string interpolation

  • C# 6新特性。
  • 使用 $ 做前缀(写在双引号外面)。
  • 可包含表达式,在 {} 内(例:int x=4; Console.WriteLine($“A square has {x} sides”);)。
  • 任何C#表达式都可以出现在{}内,会调用ToString或等效方法。
  • 可以改变表达式的显示格式,使用 : ,后面跟着格式化字符串(例:string s = $“255 in hex is {byte.MaxValue:X2}”;)。
  • 默认只支持单行,除非使用@,$ 需在 @ 前
  • 在字符串里面输入 { 时,需输入 {{ 。

数组

  • 数组的元素存储在连续的内存块里,读取效率高。
  • 所有的数组都继承于 System.Array 类。
  • 一旦数组被创建,那么其长度不可改变。
  • 创建数组时,所有的元素都会被初始化,其值为该类型的默认值。

值类型 vs 引用类型

  • 值类型:每个元素都作为数组的一部分进行分配内存。
  • 引用类型:创建数组时就是创建了一堆null引用(建议对元素是引用类型的数组初始化后对元素都进行初始化)。

矩形数组 rectangular array

  • 代表n维内存块。
  • 使用逗号来分割维度(例:int[,] matrix = new int[3,3];)。
  • GetLength方法可返回指定维度的长度。

交错数组 jagged array

  • 元素类型为数组的数组。
  • 使用连续的中括号来声明和代表不同的维度(例:int [][] matrix = new int[3][];)。
  • 内层维度并没有具体指明,内层维度的数组可以是任意长度。

边界检查

  • 所有数组的索引都会被运行时检查。
  • 如果使用了不合理的索引,抛出IndexOutOfRangeException。
  • 边界检查对性能的影响很小,JIT编译器可执行一些优化(例:进入循环前预先对所有的索引进行安全检查,避免在迭代中检查)。
  • C# 提供了“unsafe”代码,可以绕过边界检查。

操作符

== 、!=

  • 对于值类型,该操作符是比较它们的值。
  • 对于引用类型,默认情况下,是比较他们的引用。

&&、||

  • 符合短路机制。
  • 可避免 NullReferenceException。

&、|

  • 没有短路机制。
  • 很少用于条件判断。
  • 当使用于数值的时候,& 和 | 执行的是按位操作。

Stack 栈 vs Heap 堆

  • Stack(一块内存)存储本地变量和参数,随着函数的进入和退出,Stack会随之增大和缩小。
  • Heap(一块内存),对象所在的地方(引用类型的实例);当新的对象被创建后,它就会被分配在Heap上,到该对象的一个引用被返回;程序执行时,随着新对象的不断创建,heap会被慢慢的填满,一旦一个对象不再被任何“存活”的东西所引用,运行时的GC会周期性的把对象从heap上释放出来,所以不会导致内存耗尽。

内存

值类型的实例(和对象的引用)会放在变量声明时所在的内存块里。

GC

C#中不可以显式的删除对象,无引用的对象会逐渐被GC收集。

static字段

存储在Heap上,会存活到应用程序域停止。

确定赋值 Definite Assignment

  • 本地变量在被读取之前必须被赋值。
  • 当方法被调用的时候,函数的参数必须被提供(除非是可选参数)。
  • 其他的变量(字段、数组元素)会被运行时自动初始化。

参数传递的方式

Parameter modifierPassed byVariable must be definitely assigned
(None)ValueGoing in
refReferenceGoing in
outReferenceGoing out

默认情况

值类型

按值传递实参,当传进方法时形参实参的值复制一份。
在这里插入图片描述

引用类型

按值传递引用类型的实参,形参复制的是引用,不是对象。
在这里插入图片描述

ref

想要按引用传递,可以使用ref参数修饰符。
在这里插入图片描述

out

进入函数前不需要被赋值,离开函数前必须被赋值。通常用来从方法返回多个值。
在这里插入图片描述
从C# 7 开始,调用方法时,可以使用 out 临时声明变量。当调用的方法有多个 out 参数且不需要使用其中的一些 out 参数时,可以使用下划线 “_” 来 discard(弃用)它们。
在这里插入图片描述

无人机中继传输数据链技术,(无人机+自组网)远距离传输技术实现详解 无人机中继传输数据链技术是指利用无人机作为空中移动中继节点,在需要通信的区域上空悬停或移动,以建立和维护通信链路,从而扩展通信范围、提高通信质量和灵活性。1. 通信链路:是无人机中继通信的重要组成部分,包括源节点到中继节点的链路和中继节点到目标节点的链路。同时,它还支持空中到地面的通信,距离大于100km。总的来说,无人机中继传输数据链技术和(无人机+自组网)远距离传输技术都是现代无人机通信领域的重要技术,它们的应用极大地扩展了无人机的通信范围和灵活性,为各种应用场景提供了强有力的支持。 阅读详情

相关推荐

台区同期线损智能诊断与闭环治理体系及工程化实践

高损台区:同期线损率>预设阈值(通常为8%,可根据区域、台区类型调整);负损台区:同期线损率<0,即供电量小于售电量,多由档案、计量、拓扑错误导致;波动损台区:月度线损率波动幅度>预设阈值(通常为5%),且无合理原因;持续异常台区:连续2个及以上周期线损率不达标,且未完成有效整改。台区同期线损智能诊断与闭环治理体系,以电力大数据为基础、智能诊断模型为核心、标准化流程为保障,彻底解决了传统线损治理“异常发现慢、定位难、整改乱、无闭环”的痛点,实现了线损治理从“人工经验驱动”向“数据智能驱动”的根本性转型。

getusushu的博客 170

C# VSTO學習心得 Day2

C#套件VSTO功能介紹,如何調用DROP DOWN

canon760d的博客 558

SAP UI5 控件剖析系列之 sap.m.DatePicker:单日选择的工程化用法、最佳实践与常见坑

在 SAP UI5 的输入控件族里,是最常被使用的日期选择控件。它把一个可编辑的输入框与一个弹出的日历整合在一起,允许用户用触摸、鼠标或键盘在本地化格式下选择某一天;控件既可以从弹出的日历里点选,也可以直接在输入框里键入日期。官方 Fiori 设计规范对它的定位就是:完成单个日期的选择,不牵涉时间,也不负责跨天的范围选择。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 301

c# out关键字 vb_C# 9.0 新特性之 Lambda 弃元参数

弃元(Discards) 是在 C# 7.0 的时候开始支持的,它是一种人为丢弃不使用的临时虚拟变量。语法上它是用来赋值的,但它却不被分配存储空间,即没有值,所以不能从中读取值。弃元用 _(下划线) 表示,下划线是一个关键字,只能赋值,不能读取,例如:在 C# 7.0 中,弃元的使用场景主要有下面四种:元组和对象的解构使用 is 和 switch 的模式匹配对具有 out 参数的方法的调用作用域内...

weixin_39617215的博客 202

C#学习Day2

举例:所有的动物都会“叫”,狗汪汪叫,猫喵喵叫,不同的动物叫的方式都不一样,但不论狗还是猫都属于动物,都继承了动物这一父类,所以就在动物这一父类中定义了“叫”这一方法,不管什么动物,只要继承了动物类,都必须强制实现“叫”方法。如上面代码所示,Student类中有一个跟其父类方法名相同的Run方法,只是输出结果不同,根据代码运行结果我们可以看到,执行的是子类Student中的Run方法,并没有执行父类,这不是方法的重写!三个不同的对象,故呈现了三种不同的状态,实现了三种不同的情况,此为多态。

qq_50646710的博客 95

跟着AI学习C# Day 2

摘要:C#第二天学习重点涵盖变量与数据类型的使用。主要包括:1) 变量与常量的声明、初始化和应用方法,常量需用const定义;2) 基本数据类型分类(值类型如int/double/bool和引用类型如string)及其语法规范;3) 类型转换技巧,包括隐式转换、强制转换和使用Convert类。通过温度转换和圆面积计算两个实践练习巩固知识点,为后续编程学习奠定基础。全文以代码示例为主,突出C#基础语法的实操性。

蓝胖子不会敲代码的博客 361

跟随菜鸟学习C#-day2

范围大的数据转为范围小的数据需要程序员转换,这个过程称作显式数据转换,过程中可能丢失数据(包括精度,数字等),而隐式数据转换则不会丢失数据且自动转换。转换方法有内置方法、Convert、Parse、TryParse以及自定义转换等。不过结合前面学的装箱拆箱,它们是否也算是另一种方式的数据转换?(后续AI解释装箱拆箱 - 不改变数据本身,只改变存储方式char c, ch;double d;您可以在变量定义时进行初始化:变量的命名规则与Java大同小异,甚至可以说一样,也遵守驼峰命名规则。

qq_62907582的博客 1073

C#学习 day2

今天主要学习C#语言基础 包括数据类型,变、常量、运算符和表达式以及语句等,总的来说有c++基础的话理解是相对不难的,基本一致 现在看代码的感觉是更应该关注代码的主体本身,即main部分 因为外部框架基本是一致的,找到main部分就基本能理解代码要实现的功能 语句部分Console.Writeline函数比较值得注意,类似于c++的printf函数,记得刚学c++老是分不清楚print和printf 第二天的话 翻了一下目录 觉得每天应该再多学一点 坚持 想到一句话 就是不管现在水平如何 要保持

dreamer67的博客 1012

C#学习-Day2

注释符 注销 解释 C#的三种注释符 单行注释/ 多行注释/*要注释的内容 */ 文档注释///多用来解释类或者方法 VS 中的常用快捷键 Ctrl+K+D:快速对齐代码 Ctrl+Z:撤销 Ctrl+S:保存(一定要经常保存!) Ctrl+J:快速弹出智能提示 Shift+End、Shift+Home Ctrl+K+C:注释所选代码 Ctrl+K+U:取消对所选代码的注释 F1:转到帮助文档 折叠冗余代码:#Region和#EndRegion 变量 用来在计算机当中存储数据 数据类型-整

Fatfatapple的博客 115

c#学习笔记day2

1、用于声明一个静态成员,只能属于这个类而不能属于任何特定的对象。3)变量前有static,同理不能用该对象的变量,只能用该类的变量。2)方法前有static,不能用对象的方法,只能用该类的方法。1)class Math前有static不能声明它的对象(1、一个或多个子类能继承他们共同的父类的方法和成员变量;补充:静态类不能有实例成员、实例方法。一、static的用法。

Sisiphe的博客 640

C# SOLIDWORKS Manage 二次开发学习 Day2

本文详细介绍了SOLIDWORKS Manage系统中BOM模块API的开发应用。重点讲解了BOM数据读取的核心流程,包括配置查询、结构解析等关键操作。文章提供了完整的C#实现方案,包含BOM配置模型定义、操作工具类封装以及调用示例。同时总结了参数获取技巧、常见错误解决方案和性能优化建议。通过configId获取机制和递归解析方法,开发者可以高效地实现BOM数据的层级结构读取,为二次开发提供了实用指导。

qq_37651031的博客 1557

C#进阶学习-Day2

/从后往前找指定元素并返回其下标,如果不存在返回-1,如果有多个指定元素,返回从后往前第一个。从前往后找指定元素并返回其下标,如果不存在返回-1,如果有多个指定元素,返回从前往后第一个。if(list.Contains(1)) //查找list存不存在指定元素。

AChearing的博客 1121

C#学习记录Day2

 今天主要学习C#中的二维数组。二维数组的声明方式:using System; namespace test4 {     class Program     {         static void Main(string[] args)         {             //二维数组的声明             int[,] b = new int[2, 3] { { ...

qq_40620756的博客 151

c#进阶学习day2

Action<T>通过设置泛型,我们可以定义有多个参数, 无返回值的函数。Func只有带泛型的一种形式,Action有带泛型和不带的两种。如果函数只执行一次,那么可以不给函数起名字,直接使用匿名函数。反射就是动态获取程序集的元数据(提供程序集的类型信息)的功能。最后一个泛型参数代表返回类型,前面的都是参数类型。反射:就是动态获取程序集中的元数据来操作类型的。参数类型必须跟指向的方法的参数类型按照顺序对应。匿名函数的签名,必须跟着委托走。1.delegate关键字。2.()放参数的,参数列表。

luomuworld的博客 84

跟着AI学习C#之项目实践Day2

本文介绍了如何为博客系统设计和实现文章(Post)模型及其CRUD功能。主要内容包括:1) 定义Post类并配置EF Core上下文;2) 设置数据库连接字符串;3) 创建数据库迁移;4) 使用Razor Pages搭建文章管理页面(增删改查);5) 测试功能并提交代码。完成了一个具备基本文章管理功能的博客系统框架,为后续添加Markdown支持、用户系统集成等功能奠定了基础。

蓝胖子不会敲代码的博客 584

c#学习记录day2

(int、double)两种数据兼容,当目标类型大于源类型,可进行自动类型转换,否,则为强制类型转换。先运算后自增) ++a(先自增后运算) --a(先自减后运算) a-- (先自减后运算)不再仅是内存级别的转换,而是考虑数据意义的转换。用户输入:Console.ReadLine() 注意:输入数据均为string类型。{0}:占位符必须从{0}开始,依次递增;空字符\a报警符\b退格\n换行\r回车\t水平制表@取消转义。(1)使用中间变量temp进行交换。关系运算的结果都是布尔类型。

luomuworld的博客 93

day2C#基础学习第二天

C# 注释符 1)、注销代码; 2)、解释代码。 C#的3种注释符 1)、单行注释// 2)、多行注释/要注释的内容/ 3)、文档注释/// 多用来解释类或者方法 C#中常用的快捷键 1)、Ctrl+K+D:快速对齐代码 2)、Ctrl+z:撤销 3)、Ctrl+S;保存(经常要保存) 4)、Ctrl+J:快速弹出智能提示 5)、Shift+End\Shift+Home 6)、 Ctrl+K...

weixin_45617212的博客 381

C#零基础学习笔记 Day2

数据类型 变量类型—数据类型 数据类型 值类型 引用类型 简单 复合 类 整数、实数 结构 接口 字符 枚举 数组 布尔 委托 基本数据类型 整数类型 类型 说明(8位等于1字节) 范围 sbyte 8位有符号整数 -128~127 short 16位有符号整数 -32768~32767 int 32位有符号整数...

DesignationX的博客 259

C# SOLIDWORKS PDM 二次开发学习 Day2

是 PDM 文件夹操作的核心接口,GetFoldersDelete是高频方法;递归遍历文件夹时,务必释放子文件夹的 COM 对象,避免内存泄漏;文件夹删除前需做双重校验:是否为空、是否有删除权限。

qq_37651031的博客 564

零基础c#学习day2【笔记】

1.命名规则 camel:首字母小写,其余单词首字母大写,多用于给属性变量命名 pascal:每个单词首字母大写,其余字母小写,多用于给类,变量命名 2.加号的作用 连接:当加号两边有一边是字符串的时候 相加:当加号两边都是数字的时候 3.占位符 使用方法:先占一个坑,在填一个坑 挖几个坑填几个坑,多填了不报错,没效果;少填了异常,占位符按照挖坑的顺序输出 格式: Console.WriteLine("{1},{2},{3}",a,b,c); 4.转义符 \n:表示换行 “” 表示一个英文半角双

qq_48850619的博客 437

C#编程学习入门-Day01-2020/2/7

C#编程学习入门-Day01=2020/2/7 使用书籍为《C#入门经典(第七版)》清华大学出版社 编程工具使用Microsoft Visual Studio 2017 书中推荐当时的最新版vs2015,我电脑上刚好有安装好的20122017,所以在这里选择了使用2017 本书第一章介绍了.net编程和C#, 第二章 第二章开始进入基础编程 点击工具选项卡,导入和导出设置 将工具重置为C# ...

m877324598的博客 390

Microsoft Visual C++ 2010 SP1

Microsoft Visual C++ 2010 SP1 Redistributable Package (x86) 安装 Visual C++ 库的运行时组件,使用户能够在未安装 Visual C++ 2010 SP1 的计算机上运行使用 Visual C++ 2010 SP1 开发的应用程序。

搜书吧本地全文搜索服务器(soushu-local)Rust高性能本地书籍搜索引擎(源码)

搜书吧本地全文搜索服务器(Soushu Local FTS) 是一款结合 Rust 高性能后端与 Vue3 现代前端框架的离线搜索系统。它可在本地快速建立小说或电子书全文索引,实现毫秒级搜索响应,让你的数字书库具备“类搜索引擎”的检索体验。系统前端采用 Vue3 + Tailwind + PrimeVue,实现清晰流畅的交互体验;后端则由 Rust + Axtic + Rusqlite + Tantivy 驱动,具备轻量、安全、高速等特点。支持跨平台运行(Windows用户可直接下载预编译文件),并提供详细的构建与运行说明。特点与优势高性能Rust引擎:Tantivy驱动的本地搜索引擎,速度媲美ElasticSearch。前后端分离:前端轻量灵活,后端独立可移植,适合多端部署。零依赖运行:可离线运行,不依赖外部服务器。可视化界面:Vue3 + Tailwind打造极简操作体验。跨平台支持:Windows、Linux、macOS均可部署。适用场景个人电子书收藏管理小说搜索与索引系统企业内部知识文档检索教育类数字图书馆

上一篇: C#学习 Day1
下一篇: Swagger 版本控制 & 注释展示(.NET)
Cancri e
博客等级 码龄6年 185粉丝 · 47原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cancri e

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值