前言
因为工作原因与.NET有关会需要C#故来努力学习,工作之余会在此积累进行代码跟练和笔记心得方便观看存档。工作为主学习为辅,技多不压身,和千千万万代码人共勉。
24-5-21进度:P2至P4
B站大学名不虚传,课程地址:C#语言入门详解001课程简介、C#语言简介、开发环境准备_哔哩哔哩_bilibili
使用2022版本vs,个人觉得这个教程不适合彻底的小白来学习,因为比较吃力。如果愿意,那就多过几遍常看常新。(其实自己过的也稍微有点吃力,也打算常看常新)
P2:
利用了十种技术来“精通”helloWorld(本人只关心.NET)一般工作上或者学习上会拿别人的东西来用,在别人的带领下来实现自己的逻辑。无论看书还是看视频都必须亲自动手。我们遇到任何困难,也不要怕。
千万不要钻牛角尖,只关心对自己工作上有用的技术。远离学院派。
- solution和project:solution解决方案、project解决具体的某个问题。一个项目project可以隶属于不同的solution=project的重用,一个solution里可以有很多project
helloworld如下
using System;//前面有花括号:名称空间的标记;解决同名类冲突
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;//如果没有此命名空间,右侧引用右键 添加引用 windows forms的类库
//using引用
namespace ConsoleApp1
{
internal class Program//program和下面的console都是类名
{
static void Main(string[] args)
{
//2024-5-21hay
Console.WriteLine("hello world");//开始执行不调试就不会闪退了【ctrl+f5】
}
}
}
P3-P4:
初识类class和名称空间namespace;类和类之间有继承关系,类库引用(dll和项目引用)
用dll的话一定要用文档,要不然拿了也没用(利用NuGet),只有dll无源代码这是不行的,多关心root cause!(根本原因)
1.类class是程序主体,名称空间namespace以树型结构组织类(和其它类型)
2.通常类的名字在程序里用水蓝色表示,程序本身就是一个类
using System;//前面有花括号:名称空间的标记;解决同名类冲突
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;//如果没有此命名空间,右侧引用右键 添加引用 windows forms的类库
//using引用
namespace ConsoleApp1
{
internal class Program//program类名
{
static void Main(string[] args)
{
(new Form()).ShowDialog();//把表单实体显现出来
(new Form()).Text = "My Form";//a创建form实例改了title
(new Form()).ShowDialog();//b可是在这里又创建了一个新的实例并显现出来,所以输出的时候不成功,随即引用变量
}
}
}
using System;//前面有花括号:名称空间的标记;解决同名类冲突
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;//如果没有此命名空间,右侧引用右键 添加引用 windows forms的类库
//using引用
namespace ConsoleApp1
{
internal class Program//program类名
{
static void Main(string[] args)
{
Form myForm;//声明引用变量(myForm为引用变量像小孩)引用实例(Form是是实例是对象,相当于气球)
myForm = new Form();//把new出来的实例交给myform这个引用变量
myForm.Text = "MyForm";//把title给变量
myForm.ShowDialog();可以有很多实例引用同一变量
}
}
}
3.dll:dynamic link library动态链接库文件(应用程序扩展)
4.黑盒引用白盒引用,个人觉得可以和黑盒白盒测试来连着记
黑盒引用:dll引用(偏外部dll文件及其文档)
白盒引用:项目引用(偏向源代码)
题外话:
黑盒测试:功能测试,只关心输入输出(偏外部)
白盒测试:结构测试,手握源代码,关心内部逻辑(偏内部)
5.高内聚低耦合:一个模块或类应该专注于做一件事,并且与其他模块或类的依赖关系尽可能少
依赖关系:他人的类库有问题,我自己的项目就会跟着有问题,就产生了依赖。
一个优秀的项目是低耦合的,依赖性越低越好。
6.事件为C#独有
其实是看到P5的,可能比较匆忙,之后再完善
未完待续。。。。
常看常新!