
1、VB的优点:从现在开始,一起来学习VB,我们可以用此软件编出自己喜欢的工具。当然,你可以没有任何的编程基础,那无关紧要,你也可以不懂英语,不太懂数学。在正式学习这个工具之前,需要纠正一个大多数编程初学者共有的错误观念,那就是,哪一个编程开发工具功能最强大,哪个开发工具最有前景!我们先来回顾古老的历史。
在很久之前,有3种编程开发工具,名称分别为:A、B、C;我们通过这3种编程工具,可以开发出任意的软件。
现在有个叫“甲”的人,要学习编程,写软件,他学习的是A ,现在是经济社会,甲需要用A这个编程工具来赚钱,过好的生活,所以当他向别人炫耀的时候,在要体现个人价值的内心的前提下,他向乙说:“我学的这个编程工具A相当的有前景,相当的功能强大。他的意思也就是说:我“甲”这个人,在计算机界,是非常有实力的。
同样一个人是丙,他学的是编程工具B,那么他在向乙介绍时如“甲”一样,我学的这个编程工具B相当的有前景,相当的功能强大。其实在他的内心深处也是说:我“丙”这个人,在计算机界,是非常有实力的。
这是非常普遍的心理,而且当今社会,谁都可以通过网络来证明自己,炫耀自己。
但是对于初学编程的人—“乙”这个人来说,就比较麻烦了,因为他通过各个渠道,看到了许多使用者对自己所用开发工具是多么的强大,真是各有千秋,这下子,“乙”就昏头了,不知道学哪个好。
其实,不存在这个问题,只不过是由于人的内心而产生的矛盾,茫然。这么多的开发工具,一直被人们使用这么多年,那说明它真的有自身存在的价值,不然早被淘汰了。
之所以存在各个方面的争论,这只不过是我们那些所谓的前辈的心理反应而产生的后果。编程工具的宗旨:就是通过它可以写出我们的软件。那么具体使用哪一个开发工具呢?事实上,使用哪个的结果是一样的,没有什么谁强大,谁不强大之分。反过来,如果你不认真的学,那么再强大的编程工具在你手里也是浪费;哪怕一个开发工具功能一般,但是你认真学,真学好的话,那么最终你也肯定有收获。
接下来谈谈VB的优点:(1)、写出来的软件有很强的稳定性;因为VB它本身是由微软开发的,而咱们使用的windows *** 作系统也是由微软开发的,也就是 *** 作系统和开发工具都出自于同一个公司。那么对于同一个公司来讲,这个编程开发工具呢,更加与其 *** 作系统很好的融合,毕竟是同一个人或是团队开发的嘛。就如双胞胎,两人彼此亲密无间,了解的不得了。当然,我不是说其他的 *** 作软件不能在windows中执行,只是VB和windows是同一个“母亲”生的。
(2)、开发过程很便捷;VB使用的是basic脚本,而比尔盖茨最喜欢的就是basic这个脚本,为什么他会喜欢这个脚本呢?原来这个脚本语言学起来很轻松,但是轻松并不代表简单,只是通过VB可以写出很强大的软件,如果你写不出来,只能说,你不懂VB。 【NBSI就是通过VB编写的】
能写出来不是最大的优点,而是能很快的写出来,比如远程控制程序等,用VB一点问题没有。现在新的windows *** 作系统出来了,但是依然支持VB写的程序,这就说明,VB写出来的程序不会被微软淘汰。
关于教程 到 中华隐士去看看吧 在VIP试看区
很适合新手的
讲师都很详细 认真 气氛很好
因为目前微信小游戏非常火,是当下比较火的行业之一,竞争很大,工资很高,未来发展也极好。想学习微信小游戏开发的朋友们最好是能有一套比较好的,完整的教程来指引
Js程序设计
1 初识node_js
2 JS基本数据_函数对象_表_数组_字符串_函数调用
3 JS运算表达式_条件判断_循环语句_垃圾回收
4 JSMath函数_数组_表_字符串_常用接口
5 JS模块_new_类_继承
Creator基础开发
1初识creator..........等
作者:啦噜啦啦噜哈
https://www.bilibili.com/read/cv3285942
出处: bilibili
呵呵,C#语言是引用了C++的思想,但两者从根本来讲是两种不同的语言,应该没什么问题的,建议你把C#学好,顺便推荐你一本书:人民邮电出版社的<<易学C#>>本书目录 预备课:学习从这里开始 11.软件=程序+文档 1
2.程序起什么作用 2
3.为何要面向对象 2
4.什么是UML 3
5..NET与C# 4
谈微软公司的.NET战略 4
C#的产生与特点 5
C#与.NET的关系 6
6.开启C#的钥匙——兴趣与正确的学习方法 7
7.习题练习 8
第1部分 C#与UML基础
第1章 开篇经典——“Hello,World” 11
1.1 Hello,World 11
1.2 程序的结构分析 13
1.2.1 命名空间 13
1.2.2 类和类的方法 13
1.2.3 程序的输入输出 14
1.3 程序的执行起点——Main函数 14
1.4 控制台的输入和输出 14
1.4.1 控制台的输入:Read和ReadLine 15
1.4.2 控制台的输出:Write和WriteLine 15
1.5 程序的注释 15
1.5.1 模块(类)注释规范 16
1.5.2 类属性注释规范 16
1.5.3 方法注释规范 16
1.5.4 代码间注释规范 16
1.6 习题练习 17
第2章 数据类型和表达式 18
2.1 数据类型简介 18
2.2 值类型 19
2.2.1 简单类型 19
2.2.2 结构类型 22
2.2.3 枚举类型 23
2.3 引用类型 24
2.4 null和void 24
2.4.1 null 24
2.4.2 void 24
2.5 变量和常量 25
2.5.1 变量 25
2.5.2 常量 29
2.6 运算处理 29
2.6.1 算术运算 30
2.6.2 赋值运算 32
2.6.3 关系运算 32
2.6.4 逻辑运算 33
2.6.5 位运算 33
2.6.6 条件运算 35
2.6.7 其他运算符 36
2.6.8 运算符的优先级别 36
2.7 指针类型 37
2.7.1 指针的定义与声明 37
2.7.2 指针的内容 37
2.7.3 指针的运算 38
2.7.4 指针的使用 40
2.8 习题练习 41
第3章 数据类型转换 43
3.1 装箱和拆箱 43
3.1.1 装箱(Boxing) 43
3.1.2 拆箱(Unboxing) 44
3.2 隐式数据类型转换 45
3.2.1 隐式数值类型转换 45
3.2.2 隐式枚举类型转换 46
3.2.3 隐式引用类型转换 47
3.3 显式数据类型转换 48
3.3.1 显式数值类型转换 48
3.3.2 显式枚举类型转换 50
3.3.3 显式引用类型转换 50
3.4 习题练习 51
第4章 计算控制——结构化程序设计 53
4.1 如果——条件语句 53
4.1.1 如果,那么——if 53
4.1.2 如果,那么;否则——if,else 55
4.1.3 如果中的如果——嵌套if,else 56
4.1.4 如果,那么;否则的另一种表达方式——?: 57
4.1.5 多条件选择——switch 58
4.2 会转圈的语句——循环语句 60
4.2.1 for循环 60
4.2.2 while循环 63
4.2.3 do/while循环 65
4.2.4 foreach循环 66
4.3 跳出循环——跳转语句 67
4.3.1 使用break和continue语句的区别 67
4.3.2 饱受争议的goto语句 68
4.3.3 return语句的使用 70
4.4 C#预处理器指令 70
4.4.1 使用预处理指令——#define和#undef 70
4.4.2 条件编译——#if、#elif、#else和#endif 71
4.4.3 警告与错误信息——#warning和# error 72
4.4.4 可视编辑器提示——#region和#endregion 72
4.4.5 指定行号——#line 72
4.4.6 关闭警告消息——#pragma 72
4.5 程序员加油站——递归法 73
4.5.1 递归法概述 73
4.5.2 递归的精髓——求解汉诺塔问题 73
4.6 习题练习 75
第5章 字符串、数组与集合 77
5.1 理解字符串 77
5.1.1 字符串类型定义 77
5.1.2 字符串类型应用实例 79
5.1.3 string与String的区别 82
5.2 存储盒子的“仓库”——数组 82
5.2.1 数组的定义 82
5.2.2 二维数组 85
5.2.3 多维数组和交错数组 87
5.3 程序员加油站——数组的应用 88
5.3.1 把数组作为参数传递给方法 88
5.3.2 使用数组模拟栈 *** 作 89
5.3.3 数据的排序与冒泡排序算法 91
5.4 一个与数组相似的新类型——集合 92
5.4.1 集合的概述 93
5.4.2 集合类的使用实例 93
5.4.3 集合与数组的区别 97
5.5 习题练习 97
第6章 C#程序员UML建模基础 100
6.1 为什么要建模 100
6.2 UML概述 101
6.3 用例建模 101
6.3.1 用例图 101
6.3.2 用例描述 102
6.3.3 用例建模实例 102
6.4 类图 103
6.4.1 绘制类图 104
6.4.2 类图中的各种关系 105
6.5 活动图 107
6.6 状态图 107
6.7 序列图 108
6.8 习题练习 109
第2部分 C#与面向对象程序设计
第7章 初识面向对象程序设计 113
7.1 万物皆为对象 113
7.2 初识封装 114
7.3 类和对象 114
7.3.1 类的声明 114
7.3.2 类的成员 115
7.3.3 类的成员的可见性 116
7.3.4 对象的创建与使用 117
7.3.5 静态成员与非静态成员 118
7.3.6 this关键字 118
7.4 对象的创建与销毁 119
7.4.1 构造函数 120
7.4.2 静态构造函数 122
7.4.3 析构函数 124
7.5 类的执行工具——方法 124
7.5.1 方法的声明 125
7.5.2 方法的返回值 125
7.5.3 方法的参数 126
7.5.4 方法的重载 127
7.6 域、属性和索引指示器 128
7.6.1 域 128
7.6.2 属性 131
7.6.3 索引指示器 133
7.7 再论封装 134
7.7.1 用传统的读、写方法封装 134
7.7.2 用属性来实现封装 135
7.8 命名空间 135
7.8.1 命名空间的声明 136
7.8.2 成员与类型声明 137
7.8.3 使用指示符 137
7.9 习题练习 140
第8章 复用现有的代码——继承与多重继承 142
8.1 继承的意义 142
8.1.1 继承的引入 142
8.1.2 为何要使用继承 143
8.2 用UML图描述继承 144
8.3 父与子——类的继承 145
8.3.1 基类与派生类 145
8.3.2 继承中的构造函数 151
8.3.3 访问和隐藏基类方法 152
8.3.4 虚方法与重写方法 153
8.3.5 抽象类和抽象方法 154
8.3.6 密封类和密封方法 155
8.4 继承与访问修饰符 156
8.4.1 可见性访问修饰符 156
8.4.2 其他访问修饰符 157
8.5 双亲与子——多重继承 157
8.5.1 水陆两用汽车的类图设计 157
8.5.2 用接口实现多重继承 158
8.5.3 用扩展方法实现多重继承 160
8.6 C#的继承规则 161
8.7 再论继承与封装的关系 161
8.8 程序员加油站——又论冒泡排序算法 162
8.9 习题练习 166
第9章 改写对象的行为——多态 169
9.1 笔与其派生类的写方法 169
9.2 多态的类型 170
9.2.1 编译时的多态性 170
9.2.2 运行时的多态性 170
9.3 多态的实现 172
9.3.1 通过接口实现的多态性 172
9.3.2 通过继承实现的多态性 174
9.3.3 通过抽象类实现的多态性 174
9.4 程序员加油站——经典的图形游戏 176
9.4.1 类图分析 176
9.4.2 代码实现与分析 177
9.4.3 游戏的客户端 181
9.5 习题练习 183
第10章 多功能的运算符——运算符重载 184
10.1 引入运算符重载 184
10.2 运算符重载的规则 185
10.3 一元运算符的重载 186
10.4 二元运算符的重载 188
10.5 比较运算符的重载 190
10.6 习题练习 191
第11章 软件模块之间的协定——接口 192
11.1 打印机程序的困惑 192
11.2 接口的意义 193
11.2.1 软件的多层设计思考 193
11.2.2 组件与接口 193
11.2.3 组件化程序设计思考 194
11.3 接口的定义 195
11.4 接口的成员 195
11.5 在UML中对接口的描述 197
11.6 接口的继承与多重继承 198
11.7 接口成员访问 199
11.8 接口的实现 200
11.8.1 在类中实现接口 201
11.8.2 显式实现接口成员 203
11.8.3 显式与隐式实现接口成员的区别 205
11.8.4 接口映射 205
11.8.5 接口的重实现 209
11.9 抽象类与接口 210
11.9.1 在抽象类中实现接口 210
11.9.2 抽象与接口的区别 210
11.9.3 抽象与接口的使用 211
11.10 接口作为返回值与参数 211
11.11 程序员加油站——打印机程序的设计 214
11.12 习题练习 216
第12章 面向对象设计原则与UML描述 218
12.1 腐化的软件设计 218
12.1.1 设计的臭味 218
12.1.2 软件为何会腐化 220
12.2 简单就是美——单一职责原则(SRP) 220
12.2.1 从Communication类的设计来看待单一职责原则 221
12.2.2 分离耦合的职责 222
12.3 修改封闭扩展开放——开放—封闭原则(OCP) 222
12.3.1 开封—封闭原则概述 222
12.3.2 银行储蓄业务的分析与设计 223
12.4 子类型替换基类型——Liskov替换原则(LSP) 226
12.4.1 Liskov替换原则概述 226
12.4.2 违反Liskov替换原则的场景 226
12.4.3 用提取公共部分的方法来代替继承 228
12.5 依赖于抽象——依赖倒置原则(DIP) 229
12.5.1 依赖倒置原则概述 229
12.5.2 再论银行储蓄业务的设计 230
12.6 分离接口——接口隔离原则(ISP) 232
12.6.1 接口污染 232
12.6.2 分离客户就是分离接口 234
12.6.3 使用委托分离接口 235
12.6.4 使用多重继承分离接口 235
12.7 习题练习 236
第3部分 C#语言高级特性
第13章 程序的体检医生——异常处理 239
13.1 异常处理概述 239
13.2 C#异常处理类 240
13.3 try、catch和finally 241
13.3.1 try和catch的用法 241
13.3.2 finally的用法 244
13.4 把异常传给调用者 245
13.4.1 调用者处理 245
13.4.2 抛出异常 245
13.4.3 重发异常 246
13.4.4 添加异常信息 247
13.5 用户自定义异常 248
13.5.1 定义自己的异常类 248
13.5.2 从自己的代码中抛出异常 248
13.6 细说异常使用 249
13.6.1 何时考虑抛出异常 249
13.6.2 在异常处理程序中做什么 249
13.6.3 在何处放置异常处理程序 250
13.6.4 异常与返回错误代码的对比 250
13.6.5 永远不要预测bug造成的后果能够被异常处理程序所捕获 250
13.7 习题练习 250
第14章 房屋中介与租房——委托与事件 252
14.1 从房屋中介与租房看待委托与事件 252
14.2 又论“Hello,World” 253
14.3 委托的概述 254
14.3.1 委托的声明 254
14.3.2 将方法绑定到委托 256
14.4 事件 257
14.4.1 引入事件 258
14.4.2 声明事件 260
14.4.3 使用事件 260
14.4.4 访问器形式的事件 261
14.4.5 在接口中声明事件 263
14.5 多播委托 264
14.6 委托中的协变和逆变 266
14.7 匿名方法 268
14.7.1 什么是匿名方法 268
14.7.2 匿名方法的参数与返回值 268
14.7.3 匿名方法块规则 269
14.7.4 匿名方法的外部变量 269
14.8 习题练习 272
第15章 程序集与反射 274
15.1 再论“Hello, World” 274
15.1.1 创建“Hello, World”的业务逻辑类库 274
15.1.2 详解C#程序集版本控制文件 275
15.1.3 创建“Hello, World”应用层 277
15.2 反射的概述 278
15.2.1 什么是反射 278
15.2.2 反射的作用 279
15.3 反射的实际使用 280
15.3.1 反射AppDomain的程序集 280
15.3.2 利用反射获取类型信息 281
15.3.3 通过反射创建类型的实例 282
15.3.4 利用反射动态调用类成员 284
15.4 反射的性能 286
15.5 习题练习 286
第16章 序列化与反序列化 287
16.1 序列化的概述 287
16.1.1 从权限系统来看待序列化和反序列化 287
16.1.2 序列化的作用 288
16.1.3 为序列化配置对象 289
16.2 序列化和反序列化方式 290
16.3 使用BinaryFormatter进行序列化 291
16.4 使用SoapFormatter进行序列化 293
16.5 使用XmlSerializer进行序列化 295
16.6 自定义序列化 297
16.6.1 使用ISerializable自定义序列化 298
16.6.2 使用特性自定义序列化 301
16.7 序列化过程中的步骤 302
16.8 序列化准则 303
16.9 习题练习 303
第17章 项目小组和程序员——进程和线程 304
17.1 进程与线程概述 304
17.1.1 从打印工资报表看待进程与线程 304
17.1.2 进程与线程的关系 306
17.2 .NET平台下与进程进行交互 306
17.2.1 Process类简介 306
17.2.2 简单的进程 *** 作实例 307
17.3 初识多线程 *** 作 310
17.3.1 System.Threading概述 310
17.3.2 一个简单的线程例子 312
17.3.3 ThreadStart的使用 313
17.3.4 线程的并行 *** 作 314
17.3.5 终止线程 316
17.3.6 前台线程与后台线程 318
17.3.7 线程的优先级 319
17.4 线程中存在的问题 321
17.4.1 竞争条件 321
17.4.2 锁定 323
17.5 线程同步 325
17.5.1 没有同步的情况 325
17.5.2 lock语句 326
17.5.3 Monitor类 328
17.5.4 使用lock与Monitor来解决生产者与消费者的问题 330
17.5.5 Events类 333
17.5.6 互斥对象 336
17.6 多线程的自动管理 336
17.6.1 线程池 337
17.6.2 定时器 340
17.7 习题练习 343
第18章 万能模板——泛型 345
18.1 泛型的引入 345
18.1.1 为什么要使用泛型 345
18.1.2 创建和使用泛型 347
18.1.3 命名规则 348
18.2 泛型类 348
18.2.1 声明泛型类 348
18.2.2 类型参数 349
18.2.3 泛型类的继承 350
18.2.4 泛型类的成员 350
18.2.5 泛型类中的静态变量 351
18.2.6 泛型类中的静态构造函数 351
18.2.7 访问受保护的成员 352
18.2.8 泛型类中的方法重载 352
18.2.9 创建泛型类的注意事项 353
18.3 泛型接口 353
18.3.1 实现接口的惟一性 353
18.3.2 显式接口成员实现 354
18.4 泛型委托 355
18.5 泛型方法 355
18.5.1 创建和使用泛型方法 355
18.5.2 abstract、virtual和override泛型方法 356
18.5.3 泛型静态方法 357
18.5.4 类型实参推断 358
18.6 参数约束 358
18.7 习题练习 360
第19章 C# 3.0语言新特性 364
19.1 隐式类型 364
19.1.1 隐式类型局部变量的声明与使用 364
19.1.2 隐式类型数组 365
19.1.3 隐式类型局部变量的使用限制 366
19.1.4 隐式类型局部变量的使用注意事项 366
19.2 匿名类型 367
19.2.1 引入匿名类型 367
19.2.2 创建和使用匿名类型 368
19.2.3 匿名类型与隐式类型变量的区别 369
19.3 扩展方法 369
19.3.1 定义扩展方法 369
19.3.2 导入扩展方法 370
19.3.3 调用扩展方法 370
19.3.4 扩展方法使用注意事项 372
19.4 对象和集合初始化器 372
19.4.1 引入对象初始化器 372
19.4.2 在初始化语法中调用自定义构造函数 374
19.4.3 初始化内部类型 375
19.4.4 集合初始化器 376
19.5 Lambda表达式 377
19.5.1 创建Lambda表达式 377
19.5.2 Lambda表达式转换 378
19.5.3 类型推断 379
19.5.4 重载抉择 381
19.5.5 表达式树 381
19.6 习题练习 382
第4部分 基于UML的面向对象分析与设计过程
第20章 基于UML的面向对象分析与设计过程 384
20.1 细说需求分析 384
20.1.1 需求分析流程 385
20.1.2 基于Web通用框架的需求描述 387
20.2 构造业务用例图 387
20.2.1 确定系统的参与者 387
20.2.2 确定系统的业务用例 388
20.2.3 绘制业务用例图 389
20.3 使用活动图来描述业务用例 389
20.3.1 绘制 *** 作子系统插件菜单的活动图 389
20.3.2 绘制管理用户权限的活动图 390
20.4 构造系统用例图 390
20.5 用例规约 391
20.5.1 基本流 392
20.5.2 备选流 393
20.5.3 特殊需求 393
20.5.4 前置条件与后置条件 393
20.5.5 描述用例规约实例 393
20.6 绘制业务领域类图 396
20.7 系统架构设计 397
20.8 数据库设计 398
20.8.1 数据库表设计 398
20.8.2 表关系设计 399
20.9 总体类图设计 400
20.10 模块详细设计与编码 401
20.10.1 数据库通用 *** 作组件:IBHDataAccess 401
20.10.2 用户权限管理接口:IBHPowerMangageInterface 402
20.10.3 用户权限管理业务逻辑 *** 作层:IBHPowerManageClass 404
20.10.4 用户权限管理页面表示层:IBHPowerManage 405
20.10.5 Web通用框架:IBHWebFramework 406
20.11 Web通用框架的部署与测试 408
20.12 习题练习 410
是否可以解决您的问题?
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)