C#笔记

【C#】C#入门笔记 文章目录1.一个 C# 程序主要包括以下部分:2.数据类型详解2.1 值类型2.2 引用类型2.3 指针类型(Pointer types)3. C#的类型转换4. 常量4.1 整数常量 本章比较杂乱,是本人在学习C#中的一些笔记,并不全面,只是一些随笔。 1.一个 C# 程序主要包括以下部分: 命名空间声明(Namespace declaration) 一个 class Class 方法 Clas... 阅读详情

var 可以使编译器自动确定一个合适的类型
例如 var x = 10; 则在编译时自动将x变量设为INT型。


如下函数
void optMethod(int first, double second = 0.0, string third = "Hello")
可以用此方法调用optMethod(first : 99, second : 123.45, third : "World");


格式化字符串举例
Console.WriteLine("Fee is {0}", fee);


如果要使用强制类型转换,使用如下的方式  A a = (A) b; 将可能导致抛出异常(如果无法转换),而如果使用as语句,则转换失败不会抛出异常,只赋值为Null,例如 A a = b as A;


每个群成员的访问属性都需要单独指定,否则便是默认的private。


每个C#程序需要一个Main函数,可以放在任何类中,如果两个类同时定义了Main函数,当然,会出错。要解决错误,需要修改编译选项,指定用某个类的Main函数。


Main函数接受的字符串数组参数中,第一个元素不包含应用程序的名称。


new创建的对象并不一定都在堆上(只有引用类型),如果是数值类型,则是在栈上。


引用类型必须使用new实例化。Myclass myClass;这句话只是一个声明,myClass并没有真正被实例化,必须使用Myclass myClass = new MyClass();


继承的声明 class B : A


在构造函数中调用另一个构造函数,可以使用this(...)的格式。要调用基类的构造函数,需要使用base(...)。


构造函数初始化表只能访问构造函数,而不能初始化成员。


readonly修饰的成员变量只能在构造函数中初始化


静态构造函数用来初始化静态只读成员变量。


internal修饰的访问权限是只在同一程序集内部可见。即同一DLL中。不可跨DLL访问。


使用sealed限定符修饰的类将不可以被作为基类使用。


ref与out关键字实现了C++中的引用,即void GetValue(ref int Val)、void GetValue(out int Val)与C++中的void GetValue(int& Val)等效,但需注意的是,ref所修饰的变量必须在调用函数之前初始化。另外,在调用函数时,也必须显式指出ref和out关键字,例如GetValue(ref K)和GetValue(out K)。


可变数目的方法参数函数声明为void Sum(params int[] p),这样便可以动态传入不同个数的int参数了。例如Sum(i, j, k)。


如果要在子类中覆盖父类的函数,需要在子类的函数声明前加new修饰符。否则编译器会警告。


要重载父类的虚函数,需要使用override修饰符修饰子类的函数,如果使用new而不使用override修饰子类的实现函数,则子类的函数将是实现覆盖的效果,而非重载。


C#中的特性为“属性”。它能很好地替代C++的类中对同一个变量的get与set方法,从而实现良好地封装性。


只编写属性的get方法即可把属性变为只读的。


要使用锯齿状数组,可以使用类似又下语法。int[][] ints; ints = new int[2][]; ints[0] = new int[3];


特性的使用中,可以使用定位参数+命名参数的形式,其中命名参数是特性的属性,具体解释请参照书籍。


每个特性类可以使用[AttributeUsage(AttributeTargets.All, AllowMultiple=true]类似的声明来修饰。它表示了这个特性的可支持类型及是否是多次特性。


特性可以理解为对类型和成员的注释信息,这种信息可以利用反射机制来进行获取,从而不必借
助向资源文件和常量中堵塞一些琐碎信息。


interface中的声明不能加访问限定符,默认所有的声明都是public的。


要检测某个类是否实现了某个接口,可以使用is表达式。


在实现一个接口时,如果对实现的函数不使用public修饰,则客户只能通过将子类转换为接口类型才能访问。


sizeof操作符只能对值型变量使用。


对引用型变量互相赋值将会导致引用传递,而不是值复制!


switch语句中,不支持“贯行”,即一个case子句执行完后没有break而继续执行下一个case子句,但是支持几个case使用同样的执行代码,即使用连续的case语法而没有各自单独的子句。


foreach (type in expression)


代表(delegate)可以使用加法成为一个被连续调用的新代表,也可以从组合代表中使用减法消去已有的代表。

using语句,定义一个范围,在范围结束时处理对象。
场景:
当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。
要达到这样的目的,用try...catch来捕捉异常也是可以的,但用using也很方便。
例如:

using (Class1 cls1 = new Class1(), cls2 = new Class1())
{
// the code using cls1, cls2


}
// call the Dispose on cls1 and cls2


 

从ADC校准到精准测量:避开PY32F030小信号采样的那些坑 本文深入探讨了PY32F030微控制器进行ADC小信号采样时面临的挑战与解决方案。从硬件设计、软件滤波算法到系统级校准策略,详细分析了如何避开常见陷阱,实现精准测量,特别是在25mV以下小信号场景中的应用实践。 阅读详情

相关推荐

一种基于OpenPose和DNN的跌倒检测软件系统(中文&英文)

学习并实现一种跌倒检测模型,此模型基于OpenPose实现逐帧人体姿态检测,使用DNN识别人体动作。检测方式有在线与离线两种,本文主要测试了离线模式,测试效果较好。

Tongzhou_Li的博客 2645

c#网络编程

Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序。.Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从socket

ddarkelf的专栏 2190

【Matlab深度学习】GPU加速实战:从环境配置到性能优化

本文详细介绍了如何在Matlab中为深度学习任务配置GPU加速环境并进行性能优化。文章从GPU加速的必要性讲起,手把手指导安装NVIDIA驱动、CUDA和cuDNN核心三件套,并验证环境。重点讲解了如何利用gpuArray将数据和模型迁移至GPU,以及通过内存优化、计算优化和多GPU并行等策略充分释放GPU算力,大幅缩短深度学习模型的训练时间。

weixin_29061465的博客 492

C#初学者的笔记

 C#初学者的笔记

学习笔记 558

CF鼠标宏防封指南:手把手教你调校罗技G HUB压枪脚本的延迟与随机数

本文详细解析了如何通过罗技G HUB的Lua脚本功能调校鼠标宏,实现拟真操作体验。重点介绍了随机数应用、动态后坐力补偿和智能操作序列等高级技术,帮助玩家在不违反游戏规则的前提下提升操作精度。

weixin_26841957的博客 334

计算机毕设项目十四:美团酒店评论情感分析完整数据代码-可直接运行

计算机毕设项目十四:美团酒店评论情感分析完整数据代码-可直接运行

693

C# 学习笔记

MicrosoftVisualStudio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,是编写C#程序或者说.NET程序最常用的开发工具。因其功能强大、简单易用、速度快、智能度高,被网友戏称宇宙第一IDE。

qq_52144597的博客 2046

DaVinci配置DID之二:工具链配置

本系列主要基于DaVinCi工具链来展开具体DID读写的配置以及最终实现。1,CDD准备2,工具链配置3,代码实现4,验证结果本文讲述流程2话不多说,走你~博主也是AutoSar小白,如果哪里表达的有问题,还请大佬们指点指点哈。接下来,让我们在下章关于代码具体实现的博文再相会哈~

weixin_48498880的博客 5743

【C#笔记】个人自用笔记

类定义:含有虚方法的类可以是具体的类(即非抽象类),也可以是抽象类。含有抽象方法的类必须被声明为抽象类。调用方式:虚方法可以直接通过基类对象进行调用(如果基类对象引用的是非重写该方法的子类实例,则调用的是基类中的实现;如果引用的是重写了该方法的子类实例,则调用的是子类中的实现),也可以通过子类对象进行调用(调用的是子类中的实现,如果子类没有重写该方法,则调用基类中的实现)。

weixin_45478456的博客 1901

SolidWorks速成教程P3-6【零件 | 第六节】——草图封闭轮廓&所选轮廓&厚度为零的报错

到这里,我们已经将特征成型的常用功能学完。这节我来继续讲解一下 SolidWorks中建模的一些容易忽略的问题(草图封闭轮廓&所选轮廓&厚度为零的报错)。

嵌入式阿齐Archie 5780

【STK】手把手教你利用STK进行导弹和反导仿真04 - STK/MMT模块03 导弹飞行工具应用案例

飞行设置的工具栏就在附加窗口的中间,首先点击左边的General,修改这个项目的名字。然后在下拉的System中选择导弹的类型,这里我们选择远程。(4)输出数据文件到STK,任务窗口里选择Export Manager项,飞行数据输出到STK。项目可以命名为Test;(1)首先建立新项目,点击Flight菜单中的New Flight选项,见下图。首先看世界地图中间的红圈,是一个导弹形状的图标,这个图标表示的是导弹的发射点。选择下面的Export Manager,依次勾选红框的选项。我们拖动这个导弹的图标,

weixin_44184852的博客 1631

c#学习笔记

c#学习笔记

Yamoonn的博客 1215

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C#学习笔记(上)

经本人搜集网上资料后整合而成的C#学习笔记,知识点很全面,前面某些很基础的内容绝大部分人都已经在学C/C++的时候学过了,所以基本一笔带过,其它地方都尽量写的很详细。

m0_75104457的博客 2315

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

XLUA学习笔记之C#和Lua之间的相互调用

感觉学习的笔记还是放在网上查询的时候比较方便,文章初看会感觉很难理清,需要耐心去看,对不起自己对不起翻到我文章的同学,不废话直接上代码。 1.C#调用Lua (耐心!耐心!耐心!) using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using XLua; //这...

xmx5166的博客 7434

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【C#笔记自用1】

ContextMenu] 和 [ContextMenuItem]:在Inspector面板的ContextMenu中添加自定义选项,允许开发者通过右键菜单快速执行某些操作或调用方法。[Header]:在Inspector面板中为字段组添加标题,有助于组织和管理大量字段。[Space]:在Inspector面板中的字段之间添加额外的间距,提高可读性。

weixin_45478456的博客 2038

C#学习笔记

C#学习笔记 这是我通过视频学习C#是使用OneNote做的一些笔记,里面有老师讲的重要内容,也有我个人的理解,发布出来希望能和大家一起进步,如有错误,希望能够帮忙指出并指正,谢谢! C#学习笔记1 关于C#里面的输入以及输出: ...

o_thing的博客 209

C#界面笔记

qq_37441795的博客 303

C#使用笔记

C#使用笔记 一、List.AddRange 将指定集合的元素添加到 List 的末尾

dampce32的专栏 143

C#入门个人学习笔记

本人按照哔哩哔哩up主唐老狮进行学习,所使用的ide为Visual Studio 2022。

Sentra233的博客 1243

C#本质论系列笔记

一、系列开篇   系列开篇免不了一大堆废话,先说一下开篇的目的吧。决定走.NET这条路也快一年了,对于.NET的学习也是断断续续的,很多东西看似懂了,却没能深入了解,换句话就是太肤浅了。所以借了一本《C#本质论》,旨在巩固自己对C#这们.NET主打的编程语言的理解。其中很大的一部分都是《C#本质论》里面的东西,所以只能写在文章类别里面,作为一个系列笔记。   与此同时,也借了另外两本本质论《A...

weixin_30664539的博客 167

unity学习 C#快速入门笔记

本文档为笔者学习期间产出的笔记存档,内容用于unity学习快速上手C#

EVEnMore_的博客 2389

C# 入门教程笔记

一个全面的 C# 教程,适合初学者和有一定编程经验的人士。C# 是一种由微软开发的面向对象的编程语言,广泛用于 Windows 应用程序开发、游戏开发(特别是 Unity 引擎)、Web 应用程序开发等。

梵心白莲的博客 2016

【无标题】 C#的学习笔记

是一种数据结构一种数据类型代表现实世界中的“种类”

dh15834384655的博客 1162
上一篇: C++函数中的static变量初始化及析构顺序
下一篇: CListBox CEdit 自绘滚动条小试
loongee
博客等级 码龄20年 23粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值