vb.net学习总结

基本语法

  1. Read()函数可充当暂停进行使用

  2. 要转换成什么类型就在前面加上C类型()即可

  3. 取模运算不是%而是Mod

  4. 不等于不是!=而是<>

  5. 在Unicode编码中小写字母比大写字母靠后 Asc(char ch)取ASC码

  6. 使用Is/Like与其他的字符串拼接进行输出,一定要用CStr将A IS/Like B转成字符串才能输出

  7. &&-》And |-》 Or

  8. 不要认为Xor就是or相反的结果,严格按定义来,Xor判断左右两个表达式结果不同时,则为真

  9. AndAlso 、 OrElse 是And和Or的进阶版,其目的一样

  10. IIF(a>b,a,b) 三目运算符用函数的形式来使用,而并非表达式

  11. switch -> Select Case [变量]
    Case 变量值
    End Select

  12. 占位符输出Console.WriteLine(“{0} {1}”,a,b)

  13. Chr(13)或vbNewLine都可以作为换行使用

字符串常见方法

  1. 对字符串转大写小写方法:LCase(String str) UCase(String str) 或者 Str.ToUpper()/Str.ToLower()

  2. Mid(String str,Integer Start,Integer length) 截取字符串子串

  3. **Str.IndexOf(char ch)**返回在字符串中第一个ch的下标(索引) 可用于字符串或者数组 SubString()截取出字符串中指定的子串 更多方法见p172

  4. String.Format(“{0:[D|T|hⓂ️s|dddd,MMM d yyyy]}”,DateTime.Now) 其中数值格式指定字符即为冒号“:”后面的字符 如 “:p” 以百分号表示

  5. 字符串操作:以某个字符分割字符串:**Str.Spilt(“要分割的字符”) 删除空格:Trim()**见P195

循环

  1. Do While …Loop 是满足条件就执行Staement,否则就Loop 而Do Until …Loop与之相反

  2. Do While …Loop & Do … Loop While 同下

  3. Do …Loop Until 与Do Until …Loop 只是执行顺序不同(先执行再判断/先判断再执行),其核心不变

  4. Exit For/While/Do 注意在Do While/Do Unitl 中断是Exit Do

  5. Continue 会跳过本次循环内以后的所有代码,直接进入下一次循环(Continue Do / Continue For)

数组

  1. 声明数组方式:一维:Dim Arr() As Integer = {1,2,3} 二维:Dim Arr(,) As Integer = {{1,2}{4,5}{6,0}}
    如果Arr()括号里指定R [L] 则不用初始化数组每个元素的具体值 Dim Arr(2,2) As Integer <==>{{0,0},{0,0}}

  2. UBound(Arr,Integer)用于返回数组索引上界,通常用于统计数组长度:For i = 0 To UBound(Arr)

  3. 实现动态数组最直接暴力的方式就是,声明数组的时候,通过输入变量参数来直接控制数组的大小,而不是常量
    如:Dim Arr(变量) As Integer

  4. ForEach类似于JavaScript、Python、Java里的for … in …用法: ForEach list in List

  5. 数组名就是首元素地址,这个依然成立在VB.net.

  6. 数组复制最好使用clone方法 Array2Array1.clone(),这样做不会把地址也复制过去,只是复制其内容。如果你想复制地址就直接赋值:Array2=Array1==

  7. 之所以对于数组的排序方法(冒泡、选择等)可以实现,是基于操作数组的时候以及声明或使用数组时候都是引用于同一个数组的地址

函数

  1. Byval传递参数值 ByRef传递参数的引用地址(该参数指向的地址)但将数组作为参数进行传递时永远都是传递其地址

  2. 当声明一个返回值为数组的函数时,需要在最后面加上括号 如:Function 函数名() As Integer() <–

  3. 可选参数的语法 函数名(Optional Byval 参数名 As Integer = 0) “=0” 表示初始化该参数的值

  4. 参数数组ParamArray的用法: 函数名(ByVal ParamArray Str() As Integer) 其中Str()表示数组,可以用于传递n个数字的数组

  5. 在vb里,既可以按位传参,也可以按名传参。按位传参就是最常见的传参方式,按名传参:函数名(参数名1:=值1,参数名2:值2,参数名3:=值3)

其他

  1. 如何生成随机数?先使用Randomize()根据系统时间生成一个随机数种子,再用Rnd()生成0~1的随机数。如果只用Rnd()在某一时刻会生成固定的数字

  2. get、set方法需要包裹在Property… End Property之间 ,Property… End Property而称为属性过程

  3. 数据类型判断函数:IsDate()IsNumeric()//除了数字还可以包含“±” IsArray() IsNothing()

  4. Date变量在赋值的时候,需要用#来包含日期。如#6/6/2024 11:50:32 AM#

窗体

  1. 在窗体程序里,sender表示触发该属性事件的对象,e表示属性事件的信息

  2. 在Exit Function之前要指定函数的的返回值,Sub是过程,使用Exit Sub会按顺序执行别的Sub

面向对象

  1. 在Class定义某个字段,加private修饰符是为了防止别的类、模块访问,所以加了该修饰符的字段、方法、函数,都只能在该Class类中被访问
  2. 如果一个类里的成员加了Shared关键字,那这个方法可以直接通过类名.字段|类名.方法直接访问,而不需要创建类的对象!
  3. property的用法:其中注意如果如果在Property关键字前指定ReadOnly就只允许Get(读/取)如果指定WriteOnly就只允许Set(写/设)
Class AccountPrivate Username As StringPrivate pwd As StringProperty Id() As StringSet(ByVal Value As String)Username = ValueEnd SetGet Id = Username//这个是相当于Return UserNameEnd GetEnd Property
  1. Protected 只允许该类的子类调用父类的成员 Private 只有类内的成员可以使用,子类不能使用

  2. Myclass.方法名() 用于当父类的方法被子类重写时,可以通过MyClass找到原来的方法

  3. 当没有写New构造函数时,系统会默认生成一个无参构造。如果加了参数,就是有参构造,并且通过重载的方式进行声明该构造函数。

  4. 多重继承是指多个接口继承某一个接口

  5. 继承的小案例

Public MustInherit Class AnimalDim action As String = "我是动物"Public MustOverride Sub Name()Public Overridable Sub Voice()Console.WriteLine(action)End Sub
End ClassClass DogInherits AnimalOverrides Sub Name()Console.WriteLine("我是狗")End SubPublic Overrides Sub Voice()Console.WriteLine("WangWangWang~")End Sub
End ClassClass CatInherits AnimalPublic Overrides Sub Name()Console.WriteLine("我是猫")End Sub
End ClassModule 面向对象2 Sub Main()Dim dg As Dog = New DogDim ct As Cat = New Cat'Dim an As Animal = New Dogdg.Name()dg.Voice()ct.Name()ct.Voice()Console.ReadKey()End SubEnd Module
  1. 接口多态的demo
Interface AnimalFunction introduction() As String
End InterfaceClass DogImplements AnimalPublic Function introduction() As String Implements Animal.introductionReturn "我是狗"End Function
End ClassClass CatImplements AnimalPublic Function introduction() As String Implements Animal.introductionReturn "我是猫"End Function
End ClassModule 面向对象2 'Sub Main()Dim c As Cat = New CatDim d As Dog = New DogConsole.WriteLine(c.introduction())Console.WriteLine(d.introduction())Console.ReadKey()End SubEnd Module
  1. 声明一个事件就是将原来的Sub或Function替换为Event 如:Public Event 事件名()

  2. 触发某事件,需要**(1)在主程序中使用WithEvents来创建事件的对象**,用法:WithEvents 对象实例 As New 这个事件所在类 (其定义对象实例方法类似于Dim,不过是把Dim换成了WithEvents关键字,一个是定义变量的关键字,一个是定义事件的关键字)
    (2)用该事件的对象实例去直接调用其中的方法如果这个方法里面Raise了要触发的事件,那么该事件就会被触发。

Public Class StealerPublic Event RunAway()Public Sub Steal()Console.WriteLine("小偷在偷东西")End SubPublic Sub Hear(ByVal word As String)Console.WriteLine("小偷听到了" & word & "的声音")RaiseEvent RunAway() 'RaiseEvent触发某事件End SubEnd ClassModule 事件的创建及触发 'WithEvents Thief As New Stealer '创建事件的实例对象Private Sub Theif_Run() Handles Thief.RunAway 'Run()处理该事件Console.WriteLine("他知道警察发现他,于是跑了!")End SubSub Main()Thief.Steal()Thief.Hear("警笛声")Console.ReadKey()End SubEnd Module

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/24102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【高考】互联网时代,问题何去何从?

随着互联网的普及、人工智能的应用&#xff0c;越来越多的问题能很快得到答案。那么&#xff0c;我们的问题是否会越来越少&#xff1f; 以上材料引发了你怎样的联想和思考&#xff1f;请写一篇文章。 要求&#xff1a;选准角度&#xff0c;确定立意&#xff0c;明确文体&#…

App UI 风格创新无限

App UI 风格创新无限

Java-exam

Java 一卷 T1 /* 编写一个Java程序&#xff0c;求1!2!…10!的值&#xff0c;程序文件命名为“FactoriesSum.java”。*/ package Test.A基础语法.T1;public class FactoriesSum {public static void main(String[] args) {int sum 0,num1;for (int i1;i<10;i){numnum*i;s…

快速制作技术插图,高效管理零部件手册

在当前的制造业和工程领域中&#xff0c;技术插图对于产品设计、制造、维修和市场营销等环节具有至关重要的作用。然而&#xff0c;传统的插图制作方式往往依赖于人工绘制或使用较为复杂的软件&#xff0c;效率低下&#xff0c;而且容易出错。 由于CAD技术的广泛应用&#xff…

备份树莓派系统的多种方法,构建镜像

在我们使用树莓派进行学习或者搭建实验环境时经常会把系统玩坏&#xff0c;辛苦配置的开发环境又得重新配置&#xff1b;或者更新某一软件后发现新版本和某些组件不兼容&#xff0c;又无法降级。这个时候我们会想将系统在稳定时进行备份&#xff0c;在系统出现问题后可以很方便…

网络编程——套接字缓存(buffer)满会丢失数据吗

套接字缓冲区已满并不意味着数据丢失&#xff0c;但它可能会导致发送和接收数据的操作阻塞或失败&#xff0c;从而间接导致数据丢失或延迟。 解释 发送端缓冲区已满&#xff1a; 当发送端的套接字缓冲区已满时&#xff0c;send 或 write 操作会阻塞&#xff0c;直到有足够的空…

爬虫工具yt-dlp

yt-dlp是youtube-dlp的一个fork&#xff0c;youtube-dlp曾经也较为活跃&#xff0c;但后来被众多网站屏蔽&#xff0c;于是大家转而在其基础上开发yt-dlp。yt-dlp的github项目地址为&#xff1a;GitHub - yt-dlp/yt-dlp: A feature-rich command-line audio/video downloaderA …

新手必看!场外期权交易的六大注意事项

场外期权交易的六大注意事项 对于初涉金融市场的投资者来说&#xff0c;场外期权交易无疑是一个既具吸引力又充满挑战的领域。为确保您在交易中能够稳健获利&#xff0c;以下六大注意事项值得每位新手仔细研读。 文章来源/&#xff1a;财智财经 一、深入理解期权基本概念 场…

《动态网站建设》

动态网站建设 试题类型 试题数量 总分 论述题 1 10.00分 名词解释 2 20.00分 简答题 3 30.00分 论述题 ASP.NET有什么优点?性能强大:ASP.NET允许早期绑定、实时编译、本机优化和盒外缓存服务,这意味着在编写代码行之前便显著提高了性能。 安全性高:ASP.NET为Web应用程序提供…

书客护眼大路灯Sun再次引领先锋,守护青少年视力健康!

在这个信息化高速发展的时代&#xff0c;我们的眼睛承受着前所未有的压力。每年的护眼日&#xff0c;不仅是提醒我们关注眼睛健康的时刻&#xff0c;更是全社会共同努力&#xff0c;为青少年营造健康用眼环境的契机。 “守护明亮视界&#xff0c;预防近视从我做起”。随着国内青…

养老服务的现代化探索与挑战

在当前全球人口老龄化日益严重的大背景下&#xff0c;养老服务已成为社会关注的焦点。随着科技的发展和经济的增长&#xff0c;人们对养老服务的需求和期望也在不断提高。养老服务不仅仅是解决老年人基本生活的问题&#xff0c;更是关乎老年人生活质量和幸福感的重要方面。因此…

toB市场 | 我们喜欢赞助这样的展会活动

过去的六一儿童节&#xff0c;刚去成都参加了个行业内的展会。受护网行动、儿童节等等的影响&#xff0c;这次去成都的客户并不算太多&#xff0c;但会议延续了一贯的高品质&#xff0c;让我们收货满满。 选择目标受众来得多的展会 不同厂商会视自己的产品和模式、目标客户来…

Dijkstra算法(迪杰斯特拉算法)

迪杰斯特拉算法通常用在图的最短路径问题上 而迷宫的最短路径可以用BFS来做&#xff0c;虽然BFS不能用于带权值的迷宫&#xff0c;但是可以对BFS稍微改进&#xff0c;只需要把判断是否走过的数组改为最短路径的数组&#xff0c;在判断是否可走时判断是否比最短的小即可 Dijks…

重塑状态管理的艺术:Vue3中Pinia的魔法之旅内包含简易购物车案例

前言 在Vue.js的世界里&#xff0c;每一次更新都是一次进化&#xff0c;Vue3携带着更强大的性能与灵活性翩然而至。而在这场技术盛宴中&#xff0c;Pinia以一种优雅而革命性的方式&#xff0c;重新定义了状态管理的体验。如果说Vuex是Vue2时代的王者&#xff0c;那么Pinia无疑…

【NLP】2、大语言模型综述

一、背景和发展历程 大语言模型四个训练阶段&#xff1a; 预训练&#xff1a; 利用海量的训练数据&#xff0c;包括互联网网页、维基百科、书籍、GitHub、 论文、问答网站等&#xff0c;构建包含数千亿甚至数万亿单词的具有多样性的内容。利用由数千块高性能 GPU 和高速网络组成…

使用2个手机文件恢复工具,轻松找回文件

在这个智能手机横行的时代&#xff0c;手机已经成为我们生活中不可或缺的一部分。然而&#xff0c;就像生活中的一切事物一样&#xff0c;手机也有可能出现意外&#xff0c;比如文件丢失。这就像是你在超市购物&#xff0c;结果发现钱包不见了&#xff0c;那种感觉真是让人抓狂…

STM32项目分享:智能家居语音系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB打板焊接图: 五、程序设计 六、实验效果 七、包含内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.com…

Android 安全开发之 exported 组件安全

Android系统中的组件是应用的基本构建块&#xff0c;用于实现应用的功能和展现界面。组件可以被其他应用调用或访问&#xff0c;这可以通过设置组件的android:exported属性来控制。然而&#xff0c;如果exported属性设置不当&#xff0c;可能会导致严重的安全漏洞&#xff0c;例…

关于简历优化

应该针对不同岗位制作不同侧重点的简历&#xff0c;比如投python的岗&#xff0c;就把python这个技能往前放&#xff0c;简历上写的项目一定要经得住问&#xff0c;不一定是非常相关。可以被深挖的&#xff0c;而不是表面的问题。面试官提问的时候&#xff0c;即使不会也可以往…