(停更)c#基础学习-刘铁锰老师课程笔记
c#学习笔记
hello world
console
下面代码可以在小黑窗中打印出”Hello, World!”
1 | Console.WriteLine("Hello, World!"); |
wpf
在选择工具箱中的textbox和button等搭建好窗体样式,并且给窗体相关元素命名设置后,双击要添加事件加入代码:
1 | private void Button_Say_Hello(object sender, RoutedEventArgs e) |
win form
与wpf基本一致。不过name属性可以在右面直接修改。
初识类与名称空间
简要认识
1 | using System; |
如上。c#是完全面向对象的一门语言,main这些都包含在类内(如上面代码的Program,Consle都是类,Program为自己命名的类,Console为微软自带的类)。namespace后面跟着的就是名称空间(上面为HelloWorld),别人引用自己写的类时候就可以通过名称空间很方便地引用。在引用名称空间的时候,使用using my_namespace
格式,如上图用到了using System
,就可以使用System里面的Console类。
如果没有using引用名称空间,也可以采用下面方法直接调用:
1 | namespace HelloWorld2 |
最终效果和之前完全一样,在小黑窗中输出hellowolrd。这种叫完全限定名,可以用using关键字来进行简化。
注意,引用命名空间可能发生类名冲突的问题,所以不要一股脑把所有都引用进来。
类库的引用
类库引用是使用名称空间的物理基础,不同技术类型的项目会引用不同的类库。在vs的依赖项中可以右键添加想要引用的类库(.dll文件),然后就可以引用这个类库了(using + 类库名,如using System;
)。
无源代码(黑盒引用):dll引用
在引用类库的时候,可能会由于一个类库引用了更底层的类库,导致需要不断引用来让程序不报错。所以引用的时候可以用NuGet(在右键添加那里就可以看见),这样就可以一键引用进来了。
有源代码(白盒引用):项目引用
在右边最上边解决方案添加现有项添加进来后,就可以在添加依赖项里面引用到相对应的项目了。如下图,就引用了自己写的类库my_tools。
依赖关系
类或对象之间存在耦合关系,优秀的程序追求“高内聚,低耦合”。
类、对象、类成员简介
类与对象的关系
1 | using System.Windows.Forms; |
注意可以“多个孩子牵着同一个气球”,如下:
1 | Form myForm1; |
类的三大成员
属性(Property)
属性:存储数据,组合起来表示类或对象当前的状态。
方法(Method)
方法:由函数进化而来,表示类或对象“能做什么”。工作中90%时间在和方法打交道,因为它是真正做事、构成逻辑的成员。
事件(Event)
事件:类或对象通知其他类或对象的机制,为c#特有(java通过其他方法实现这个机制)。善用事件机制非常重要。
语言基本元素概览、初识类型、变量与方法、算法简介
和其他编程语言非常相似,具体可以去看文档。下面是一些例子。
1 | Caculator num = new Caculator(); |
一个简单递归实例:
1 | MyClass a = new MyClass(); |
详解类型、变量与对象
类型(Type)
类型(Type)又名数据类型(Data Type),是数据在内存中存储时候的“型号”。c#是一门强类型语言。
1 | int a = 5; |
不过c#语言有对弱类型/动态类型的模仿可以达到和弱类型相似效果。
1 | dynamic myVar = 100; |
c#的五大数据类型
类(classes):如Window, Form, Consle, String
结构体(Structures):如int32, int64, single, double
枚举(Enumerations):如HorizontalAlignment, Visibility
接口(Interfaces)
委托(Delegates)
上面的五种,类、接口和委托,合称为引用类型(Reference Type),结构体和枚举,合称为值类型(Value Type)。
暂时停止更新
跑去玩unity去了。。而且这学期课程有c#,先听老师讲咧,以后有时间再回来听刘老师的课程。