C#开发入门指南_学习笔记
.NET 是一种平台,C#是平台上的对象
快捷键
搜索:ctrl +Q
书签 ctrl +k 两次
显示断点窗口:Ctrl + Alt + B
跳转到定义的地方:ctrl +F12
注意点:
- 设置无法最大化,也无法缩小
- 11
安装包选择
软件安装包可以先创建一个新项目,然后找到最下面的扩展更新
创建一个C#项目,选择
先引用命名空间,再使用命名空间,再引用类的对象,再构造类的方法
如果代码在某一个类中写的成员方法太多,可以拆分多个类去实现,也就是C当中创建多个.c文件
操作:
比如把某些相同的方法操作写到同一个类中,
需要在原有的结构中声明类的对象
类中的方法和函数可以加public供外部访问,但是如果是变量的话,不能直接比如public int val = 10
而是可以 外部调用的时候比如
calculator.Value = 10;这个值会写到_value,然后内部就能访问外部传的值了,也可以通过内部给值,外部访问
也可以单一设置,只读的。
还有一种含参的构造函数,也可以通过外部向内部传值。但是静态的方法不能使用this,因为静态是不能有实例化的。
构造函数可以有多个,有参,无参,多参。
封装使用同一个方法
继承,派生类属性
主函数调用
多态:同样一个接口,可以干不同的活
多态条件:类中必须有虚函数,并且调用虚函数,并且有继承关系(父子类),基类的析构函数必须是虚函数(必须加,否则内存泄漏) virtual ~Animal() {} // 一定记得加
就是父类的指针指向子类的对象,父类声明,子类实现。
Animal* animal = & dog;
虚函数:在一个类中创建一个虚函数,编译器会在内存布局生成一个虚函数表指针,占四个字节,这个虚函数表指针指向的是虚函数表。虚函数表中存放的就是虚函数了。
虚函数表:
虚函数表指针:
配置界面:
除了窗体界面,还有控制台和消息对话框,这里修改
private void button1_Click(object sender, EventArgs e)
{
// Console.WriteLine("hello"); 控制台输出
}
窗体的使用:
主窗体是在main里面调用部分窗体,会按照顺序先后创建
也可以通过按钮点击创建其他窗体界面,以及消息对话框的显示
private void button1_Click(object sender, EventArgs e){Form2 fm = new Form2();//fm.ShowDialog();//阻塞前一个窗口的执行// fm.Show();//不阻塞前一个窗口// DialogResult dr = MessageBox.Show("内容", "左上角提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);// MessageBox.Show("内容", "左上角提示", MessageBoxButtons.YesNo, MessageBoxIcon.Error);//MessageBox.Show("内容", "左上角提示", MessageBoxButtons.AbortRetryIgnore);DialogResult dr = MessageBox.Show("测试一下消息对话框", "测试提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);MessageBox.Show(dr.ToString());if (dr == DialogResult.Yes){}
在窗体打开之前也会执行一些操作,初始化之前的函数,窗体的事件会在窗体发生前执行,窗体也有点击事件
标签文本等:
标签如要需要加载图片等资源
鼠标和点击事件
private void label1_Click(object sender, EventArgs e){MessageBox.Show("恭喜你");}private void label1_MouseEnter(object sender, EventArgs e){//this.Width = 900;//this.Height = 600; Random random = new Random(); // 只需要一个随机数对象int x = random.Next(0, this.ClientSize.Width - label1.Width);int y = random.Next(0, this.ClientSize.Height - label1.Height);label1.Location = new Point(x, y); // 设置新的随机位置}
文本框
private void textBox1_TextChanged(object sender, EventArgs e)
{
label1.Text = textBox1.Text;
}
选择事件,双击
多层架构
写一个接口类,把要实现的都放到这个类中
添加字体
listbox
控件自定义添加,可以直接拖拽进来
listbox的数据绑定问题
接口设计
多窗体,MDI窗体设计
使用.show
横向排列和纵向排列
组合框combox
作业:左边国家,右边对应城市名
第二个就在创建一个list,然后绑定加入数据源 ,当第一个控件改变时,第二个显示
容器,panel和分组groupbox控件,分类管理
滚动条 scrollbar
作业:
当滑动字体时,文本框字体要自适应变大
浏览器控件:
picturebox图像控件
定时器事件
打开对话框,文件对话框
字体对话框
进度条控件
菜单栏控件
鼠标事件等
绘制GDI控件
新UI框架
另一个UI框架
打包程序
完结撒花!!!!