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

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.xdnf.cn/news/16802.html

相关文章:

  • 【DL学习笔记】DL入门指南
  • 从数据丢失到动画流畅:React状态同步与远程数据加载全解析
  • 谈谈WebAssembly、PWA、Web Workers的作用和场景
  • 记一次Windwos非常离谱的系统错误,IPF错误,程序构建卡顿,程序启动卡顿。。。
  • 携程PMO资深经理、携程技术委员会人工智能委员会秘书陈强受邀为PMO大会主持人
  • ai项目多智能体
  • 【0基础PS】PS工具详解--仿制图章工具
  • 如何最简单、通俗地理解线性回归算法? 线性回归模型在非线性数据上拟合效果不佳,如何在保持模型简单性的同时改进拟合能力?
  • 详解K8s集群搭建:从环境准备到成功运行
  • 《文明5》错误代码0xc0000142修复方法
  • JavaWeb--Student2025项目:增删改查
  • MySQL——视图
  • 工程化(二):为什么你的下一个项目应该使用Monorepo?(pnpm / Lerna实战)
  • LeetCode 刷题【24. 两两交换链表中的节点、25. K 个一组翻转链表】
  • 特征工程 --- 特征提取
  • 嵌入式——C语言:俄罗斯方块
  • Spring Boot Actuator 保姆级教程
  • 【数据结构】-----排序的艺术画卷
  • Linux9 root密码修改
  • EXE加密软件(EXE一机一码加密大师) 最新版1.6.0更新 (附2025最新版本CSDN下载地址)
  • 日志归档存储策略在海外云服务器环境的容量规划方法
  • java的冒泡排序算法
  • 机器学习sklearn:编码、哑变量、二值化和分段
  • 【数据分享】南海综合波浪数据(1945-2018 年)(获取方式看文末)
  • OCR、文档解析工具合集
  • 在Alpine Linux上配置Redis使用NFS存储的完整指南
  • 包裹移动识别误报率↓76%:陌讯时序建模算法实战解析
  • 【C++】stack和queue
  • BGP服务器对于网络攻击该怎么办?
  • 《操作系统真象还原》 第五章 保护模式进阶