当前位置: 首页 > 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.lryc.cn/news/608137.html

相关文章:

  • Ubuntu系统VScode实现opencv(c++)图像翻转和旋转
  • Java 注解详解(含底层原理)
  • Vue 3.0 Composition API:重新定义组件逻辑的组织方式
  • 算法训练营DAY46 第九章 动态规划part13
  • 全球化 2.0 | 中国香港教育机构通过云轴科技ZStack实现VMware替代
  • stm32103如果不用32k晶振,那引脚是悬空还是接地
  • SLAM中的非线性优化-2D图优化之零空间实战(十六)
  • Linux iptables防火墙操作
  • Apache Doris数据库——大数据技术
  • SpringBoot怎么查看服务端的日志
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博舆情数据可视化分析-热词情感趋势树形图
  • sqli-labs:Less-21关卡详细解析
  • 【BTC】挖矿难度调整
  • 人类学家与建筑师:区分UX研究和项目管理的需求分析
  • 隧道照明“隐形革命”:智能控制如何破解安全与节能双重命题
  • 【iOS】strong和copy工作流程探寻、OC属性关键字复习
  • 电脑手机热点方式通信(下)
  • 「iOS」————weak底层原理
  • 「iOS」————SideTable
  • JAVA国际版同城服务同城信息同城任务发布平台APP源码Android + IOS
  • Ajax——异步前后端交互提升OA系统性能体验
  • Dice Combinations(Dynamic Programming)
  • 8.2 状态机|贪心|dfs_dp
  • Linux初步认识与指令与权限
  • 机器学习——K 折交叉验证(K-Fold Cross Validation),实战案例:寻找逻辑回归最佳惩罚因子C
  • Jotai:React轻量级原子化状态管理,告别重渲染困扰
  • React ahooks——副作用类hooks之useThrottleFn
  • react 和 react native 的开发过程区别
  • Javascript面试题及详细答案150道之(016-030)
  • 【REACT18.x】使用vite创建的项目无法启动,报错TypeError: crypto.hash is not a function解决方法