当前位置: 首页 > news >正文

C#开发入门指南_学习笔记

.NET  是一种平台,C#是平台上的对象

快捷键
搜索:ctrl +Q

书签 ctrl +k 两次

显示断点窗口:Ctrl + Alt + B

跳转到定义的地方:ctrl +F12

注意点:

  1. 设置无法最大化,也无法缩小
  2. 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框架

打包程序

完结撒花!!!!

http://www.dtcms.com/a/311543.html

相关文章:

  • Clickhouse#表记录转换为insert语句
  • 回归预测 | Matlab实现CNN-LSTM-Multihead-Attention多变量回归预测
  • Spring AI MCP 技术深度解析:从工具集成到企业级实战
  • PyQt6教程(003):运行QTDesigner生成的UI文件
  • 零基础 “入坑” Java--- 十六、字符串String 异常
  • 深入理解C++中的Lazy Evaluation:延迟计算的艺术
  • 搜索与图论(最小生成树 二分图)
  • 无人机光伏巡检漏检率↓78%!陌讯多模态融合算法实战解析
  • 关于解决wandb无法连接的问题(timed out problem)
  • spring学习笔记三
  • pyqt5显示任务栏菜单并隐藏主窗口,环境pyqt5+vscode
  • Python序列去重高级指南:保持顺序的高效去重技术
  • python:如何调节机器学习算法的鲁棒性,以支持向量机SVM为例,让伙伴们看的更明白
  • Linux 系统管理-15-OpenSSH 服务管理
  • NLP——Transformer
  • flutter实时播报的桌面应用遇到的问题
  • I2C(韦东山HAL库)
  • 2023年ASOC SCI2区TOP,可修灰狼优化算法RGWO+燃料电池参数辨识,深度解析+性能实测
  • 【无标题】根据11维拓扑量子色动力学模型(11D-TQCD)与当代宇宙学理论的融合分析,宇宙轮回的终结机制及其最终状态可系统论述如下:
  • 商品中台数据库设计
  • WPFC#超市管理系统(4)入库管理
  • 音视频学习(四十八):PCM和WAV
  • 基于深度学习的医学图像分析:使用GAN实现医学图像增强
  • 进阶向:Python生成艺术图案(分形、数学曲线)
  • MySQL索引解析
  • vue3pinia
  • Corrosion2靶机
  • Cyber Weekly #63
  • 搜索引擎评估革命:用户行为模型如何颠覆传统指标?
  • Sklearn 机器学习 数据聚类 用Numpy自己实现聚类