C#学习笔记之一(basic, class, function,array, collection interface)

VB.NET编程语言入门与实践指南 面向对象编程是现代软件开发的核心范式,VB.NET作为.NET框架的重要成员,通过继承、封装和多态等特性实现代码复用和模块化设计。在.NET生态中,VB.NET与C#共享公共语言运行时(CLR),支持跨语言互操作和丰富的类库调用。开发Windows桌面应用时,VB.NET凭借其直观的英语-like语法和Visual Studio深度集成,成为快速开发企业级应用的优选方案。本文以类型安全、异常处理和LINQ查询等实际场景为例,详解如何利用VB.NET构建健壮的应用程序,特别适合需要从VB6升级或从事.NET全 阅读详情

最近学习了C#程序设计的课程, 现在将笔记总结如下, 没有系统整理,都是课上记得notes, 后面几部分以程序居多,因为这些笔记没有做过整理,所以很多code没有详细的注释,如果有时间的话,我会对笔记做系统的整理,还有这里没有提及基本的语法介绍,望大家谅解:

Basic:
 //利用out, 不用给i,j assign初始值
 int i,j;
 f(out i, out j) {}
  //using, 括号外自动destroy对象
 using (Font theFont == new Font("Ariel", 10.0f)){}
 //constants
 const int i = 32;
 //Enumeration
 enum E {a=5,b=8}
 int i = (int) E.a;
 //turn buff data to string
 Encoding.ASCII.GetString(buff, 0, bytesRead) 
 // read data
 string s = Console.ReadLine()
 int j= Convert.ToInt32(s); 
 //get textbox value and convert to double
 double left = double.Parse(textBox1.Text);
 Application.DoEvent(); //this will let app deal with event
array:
 A[] a = new A[5]; // a[0]to a[5] is null
 int[] arr = new int[2] {1,2}
 int[] arr = {2,3,4,5}
 foreach(A a in arr_A) {}
 for(int i=0; i<arr.Length; i++) {}
 //Rectangular Arrays
 int[,] rectArray = new int[4,5]
 int[,] arr = {{1,2,3,4},{1,2,3,4}{1,2,3,4}}; //init
 //Jagged array, 数组中包含数组,各维不等长
 // ja[0].Length is length of ja[0]
 int [][] ja = new int[4][];
 //using params transfer a array to a function
 //using f(1,2,3,4) to call the function
 f(params int[] values){
  foreach (int[] a in values) {}
 } 
Collection interface:
 indexers:
  //define a indexers
  public Myclass this[int offset] {get{};set{}}
  //call it
  Employee joe = bostonOffice["Joe"];
 IEnumerable:
  //return a IEnumerator object
  GetEnumerator()
 IEnumerator:
    Reset(){}
         Current(){}
  MoveNext(){} 
 IComparable:
  //Class inherit IComparable interface
  //Implement CompareTo() method
  CompareTo()
 ArrayLists:
  Count  Get number of elements
  Add()  Add an object
  Clear() Remove all objects
  Reverse() Reverse order of elements
  Sort()  Sort the elements 
function:
 //default by value
 f(int x){}
 //by reference
 f(ref int x){}
class:
  //存取:
 public, private, protected, internal, protected internal
 this, static //static member must be init in class
  //继承
 class A: B {}
  //多态  
 virtual,override
 //init对象
      Employee emp1 = new Employee();

     //先隐式转换3为Roman
     Roman r4 = r1 + 3;
     //先显式转换7.5为Roman
 Roman r5 = r1 +(Roman)7.5;  

 // 运算符重载,先返回int, 然后用隐式转换
 public static Roman operator+ (Roman l, Roman r)
 {
  return (l.val+r.val);
 }
 //显式转换
 public static explicit operator Roman(float val)
 {
  return new Roman(val);
 }
 //隐式转换
 public static implicit operator Roman(int val)
 {
  return new Roman(val);
 }
  //properties, 注意大小写
 public int Age {
  get {return age;}
  set {age = value;}
 }
 
 //Interface
 //interface methods must be implement in class
 public interface IA {}
 //is 测试类是否从接口继承
 if (a is IA) {IA c = (IA) a; }
 //as 测试类是否从接口继承
 IA c = a as IA;
 if (c != null) {}
 //interface properties
 pubiic interface IAA: IA
 {
  float F{get;set;}
 }
 //mutiface interface inheritance
 public class C: IA, IB {}

【信息科学与工程学】计算机科学与自动化——第二百零九篇 软件硬件集成开发环境指南01 编号类型环境知识/特性/机制涉及因素/参数/属性列表关联知识与标准法规001需求/追溯集成机制软件开发环境/集成的软硬件系统开发环境把需求条目、用户故事、规格说明、变更请求与设计、代码、测试、缺陷、构建、发布版本建立双向追溯链,形成从“业务目标—系统需求—软件/硬件需求—验证确认—运行反馈”的全生命周期闭环,同时引入影响分析和合规映射。需求属性:需求唯一ID、需求标题、需求来源(客户/内部/法规)、需求类型(功能/性能/安全/可靠性/可维护性)、优先级(Must/Should/Could)、版本、状态(草稿 阅读详情

相关推荐

手把手教你用西门子博图V18配置阿特拉斯PF6000拧紧枪PN通讯(附完整GSD文件与ToolsTalk配置文件)

本文详细介绍了如何使用西门子博图V18配置阿特拉斯PF6000拧紧枪的PN通讯,包括硬件连接、网络参数规划、ToolsTalk软件配置及博图工程设置。通过完整的GSD文件和配置文件,帮助工程师快速实现高精度拧紧设备与PLC的高效通讯,适用于汽车装配和电子制造等工业自动化场景。

weixin_42662293的博客 601

Visual Basic编程入门与实战技巧

Visual Basic(VB)是微软推出的面向对象编程语言,以其简单易学和高效开发著称。作为.NET框架的核心成员,VB采用接近自然语言的语法结构,支持事件驱动模型和丰富的GUI开发组件。在技术实现上,VB通过类型安全检查和自动内存管理确保代码可靠性,其快速应用开发(RAD)特性使开发效率提升30%以上。典型应用场景包括Windows桌面程序、Office插件和企业级业务系统开发,特别适合需要与Excel等办公软件深度集成的解决方案。现代VB版本已支持.NET Core跨平台开发,同时保留了与遗留VB6应

weixin_33726313的博客 627

手把手教你用海康威视相机+DLP4500搭建双目结构光系统(附避坑指南)

本文详细介绍了如何使用海康威视相机和DLP4500搭建双目结构光三维测量系统,涵盖硬件选型、系统搭建、双目标定及三维重建等关键步骤。特别针对预算有限的开发者和实验室团队,提供实用的避坑指南和优化技巧,帮助实现0.02mm的高精度测量。

weixin_42526087的博客 461

ECMAScript 6 (ES2015) 特性全览:从箭头函数到尾调用优化 —— es6features 仓库核心指南

本指南以 es6features 仓库的核心文档 [README.md](https://link.gitcode.com/i/a6a9d2f5cd4a63d58ed4ebf67c8158fd) 为主体,系统梳理 ECMAScript 6(即 ECMAScript 2015,下文统一称 ES6)引入的 21 大类语言新特性,涵盖箭头函数、类、模板字符串、解构、模块、生成器、Proxy、Symbol

gitblog_00813的博客 941

Jetson Nano官方镜像下载&烧录

在NVIDIA Jetson Nano开发者套件上安装NVIDIA官方Ubuntu镜像

weixin_44222088的博客 8845

用大白话讲解Carplay(原创)

用大白话讲解Carplay: Carplay是美国苹果公司开发的一套服务,用户通过这套服务可以将iPhone与车载系统连接,然后在车载大屏上操作使用iPhone手机。个人理解,Carplay不能叫车载系统,不是操作系统,只能算一种服务。让你在车上的大屏上使用iPhone,这样用起来更方便,不需要在手机小屏幕上操作。基于这一点,有些人也说Carplay就是个投屏的功能,将手机屏幕投屏到了车机大屏上。可以简单这么理解,但是并不只是投屏这么简单,如果只是投屏的话,车子只是起到了一个显示器的功能,其实不止,手机和

cici2013的专栏 2万+

RustTraining 项目解读:为 C 开发者编写的 Rust 全面迁移指南——从 GC 思维、类型系统到并发与工程实践

> 本文以 [RustTrainingForCSharp.md](https://link.gitcode.com/i/975d89d2bae937f35dc83bf16d5d04ab) 为主干,系统梳理这套面向 C# 程序员的 Rust 训练材料:它覆盖语言哲学(GC vs RAII)、类型系统(Option/Result、穷尽模式匹配、真不可变)、范式迁移(继承→组合、接口→trait)、错误

gitblog_00513的博客 484

Aruco标签定位、测距、三维位置估算 opencv应用

摄像头要一开始对准aruco标签才开始运行。+ 相机标定文件(参考我的上篇文章)+ aruco标签6*6。

dgut_guangdian的博客 4221

云策API GitHub热搜接口:8种语言鉴权实现与实战指南

GitHub热搜数据是开发者了解技术趋势的重要窗口,但直接调用GitHub API时,很多开发者都会遇到同一个问题:为什么我的请求总是返回401或403错误?这背后往往不是代码逻辑问题,而是API鉴权这个"隐形门槛"在作祟。 最近在分析技术趋势时,我发现云策API的GitHub热搜接口提供了一个很好的解决方案。与传统方案相比,它最大的价值在于将复杂的OAuth流程简化为简单的Key认证,让开发者能够快速获取实时热搜数据。但真正用好这个接口,需要从鉴权机制到多语言实现都有清晰的理解。 本文将带你从零开始,通过

weixin_34364071的博客 467

InfiniteTalk (Wan2.1) 数字人 A800 落地实战:从依赖地狱到完美运行的保姆级指南

摘要:本文详细记录了在A800(80GB)服务器上部署InfiniteTalk开源数字人项目的完整流程。该项目基于阿里Wan2.1视频生成模型,支持无限时长流式生成,但环境配置极其复杂。作者总结了18个关键问题点,包括Python版本冲突、CUDA算子缺失等,并提供了黄金配置方案:使用Python3.10+PyTorch2.5.1环境,精准控制FlashAttention等核心库版本,以及针对A800的显存优化策略。最终实现480P视频30秒/步的生成速度,相比默认配置提升3.7倍性能。

软件工程师文艺 2041

【WRF-Urban】增加动态空间热排放数据以替换人为热排放参数

增加动态空间热排放数据以替换人为热排放参数

WW、forever的博客 1044

C++AI编译错误自动修复神器-告别手动Debug的终极方案

在日常 C++ 开发中,编译错误是最频繁遇到的障碍之一。一个中等规模的项目在重构期间,一次 可能产生数十甚至上百条错误信息。这些错误往往具有级联效应——一个头文件的拼写错误可能导致下游十几个翻译单元同时报错,而真正需要修改的地方只有一处。传统的工作流是: 这个循环对于经验丰富的开发者来说尚可接受,但对于以下场景则效率极低:优势:局限:本项目最适合以下场景:阅读

weixin_48053866的博客 279

无线通信技术及其在机器人中的应用

本文系统阐述了无线通信技术在机器人领域的应用框架与技术选型。首先构建了无线通信的三层理论架构:物理层解决信号传输问题,链路层处理接入控制,网络层实现组网管理。随后详细分析了主流无线技术的特性与适用场景:BLE适用于低功耗传感器节点,Wi-Fi适合高带宽视频传输,5G专网满足工业AGV的广域覆盖需求,星闪技术凭借20μs超低时延和4096台并发连接能力,为高端机器人应用提供突破性解决方案。通过鄂尔多斯隆基5G专网等典型案例,验证了5G在工业AGV规模化部署中的优势,并展望了通感算智融合、星闪+5G协同等未来发

weiyvyy的博客 1114

C#学习笔记之六(stream, Asynchronous data read, HttpWebRequest)

Streaming Data: // Explorer Directory string dir = @"C:/Winnt"; DirectoryInfo dirInfo = new DirectoryInfo(dir);   //read and write File Stream inputStream = File.OpenRead(@"c:/test/source/hamlet.txt

1573

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

OV9734 DATASHEET,完整规格书

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

C#学习笔记之二(stack, queue, string, HashTable,StringBuilder, Regular Expresstion)

Queue: Enqueue() Dequeue() Peek() //only get first element, not delete itStack: Count() Clear() Peek() Pop() Push() CopyTo(array, offset) //copy to arrayDictionary/Hashtable: Keys //colleation of Keys

1416

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C#学习笔记之五(ADO.net)

ADO.net //Overview Data-->DataReader-->Data Provider--> DataSet Data Provider: Connection, Command, DataAdapter DataSet: DataRelationCollection,   DataTable collection(including DataTable)) DataTable:

1345

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C#学习笔记之四(Attribute, Reflection, Thread, Thread Synchronization)

Atributes: //can add metadata in program, It store with the program //using ILDasm to check atributes   //usage [CodeReviewAttribute("08/08/2005", "Allan Zhang",  Comment = "That is a Attribute test")

1334

C#学习笔记之八(Serialization, ActiveX Control)

Serialization: 1. use attribute   // "[serializable]" 2. Formatter   // "BinaryFormatter binaryFormatter = new BinaryFormatter();" 3.[Noserialized]   //example // if the data can generate based some d

1308

C#学习笔记之三(delegate, event, Make XML document )

Delegates:   // 1. nomal delegates = create before run, in main  //declare class Employee{}; class Couple{}  public delegate bool Reverse(object lhs, object rhs); SetOrder(Reverse the DelegatedFunctio

1251

C#学习笔记之七(network I/O, Asynchonouse network I/O)

Network IO;  //Server1 programm using System.Net.Sockets; TcpListener tcpListener = new TcpListener(65000); tcpListener.Start(); for(;;) {  Socket clientSocket = tcpListener.AcceptSocket()  if (client

1239

【JVM】对象内存布局

HotSpot JVM 中,Java 对象内存布局由对象头(12字节,含Mark Word与压缩Klass Pointer)、实例数据及对齐填充构成,总大小为8字节倍数。对象头支持锁状态动态复用,指针压缩使引用仅4字节,但堆超32GB时失效。实例字段按类型优先级重排序以减少间隙,最小对象大小为16字节。通过JOL工具可精准验证布局,理解锁机制、GC、伪共享等底层行为。

2301_79732484的博客 149

Lua 与 ToLua:运行机制及热更新原理

本文解析 Lua 与 ToLua 在 Unity 中的运行机制及热更新原理。Lua 作为可嵌入语言,通过编译字节码由虚拟机执行,支持运行时加载新脚本;ToLua 实现 C# 与 Lua 的双向调用,通过生成 Wrap 代码注册类型接口;热更新依赖于宿主动态加载并执行新脚本,结合资源管理、版本控制与状态处理机制。关键点包括:table 共享引用、函数值不随重定义更新、闭包捕获状态、元表实现类逻辑,以及对象跨语言传递的生命周期管理。完整热更新需独立设计补丁分发与回滚策略。

2503_90324697的博客 129

使用lxml操作 Word 的 OpenXML 底层

本文综合介绍了使用lxml操作Word底层OpenXML文档的基础知识,并给出了一个效率远超VBA的提取Word文档中的表格的HTML表结构的实例,演示了用lxml获取及修改部分Word文档组成部件的文本、属性的方法。

yivifu的专栏 397

C#使用opencv和Yolo模型识别车牌号

本文基于OpenCVSharp与OnnxRuntime,结合YoloV8n-pose_plate模型(检测车牌位置)和OCR模型(识别车牌文字),实现高效车牌识别。通过预处理、目标检测、NMS筛选及文字识别流程,最终输出车牌框位置与识别文本。代码封装良好,支持自定义路径与置信度阈值,具备实际应用价值。

lweiyue的专栏 163

C# NAFNet 图片去模糊

基于NAFNet与ONNX Runtime的C# WinForms图片去模糊工具,支持DirectML GPU加速与CPU回退,实现一键去模糊、大图分块处理、并排对比及拖拽打开。具备高DPI适配、自绘圆角界面、命令行批量处理等功能,适用于Windows 10/11系统,可灵活配置模型路径与分块大小,解决显存不足与边缘接缝问题。

hixiong123的博客 238
上一篇: C#学习笔记之五(ADO.net)
下一篇: C#学习笔记之四(Attribute, Reflection, Thread, Thread Synchronization)
bugfree
博客等级 码龄24年 1粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值