C#碎碎念

                      C#整理

类:
类包括成员(成员分静态成员和实例成员,静态成员是类,而实例成员是对象)
在这里插入图片描述
关键字:
在这里插入图片描述
值类型和引用类型的区别:
值类型是对值的储存,(储存的是明确的值)
引用类型是对 值的引用的储存(储存的是方式)

对栈的理解:栈是一块虚拟内存
{int a ; {int b; 在a 里面给 b 分配一块内存} 给a分配一块内存,} 声明变量 a ,再内部块声明 b 先是内部块代码结束,b 超出作用域,再到 a 所以 b 的生存期包含再 a 的生存期中。 (在释放变量时 释放变量的顺序)也就是栈
的执行顺序 是和分配内存的顺序相反的,因为知道 栈是一块虚拟的内存空间(也就是哪里有空间就跑哪里去),
所以我们不知道他的储存位置,但是我们在他那里存了钱呀,所以就有了一个叫 栈指针 的东西,栈指针 (是操作系统维护的一个变量)表示 栈 中的下一个空闲储存单元的地址,在程序第一次运行时,栈指针会指向 为栈保留的内存块末尾(小蝌蚪找妈妈)【根据这个 栈的工作原理就可以得到解释了,因为栈指针总是指向内存块的末尾,所以执行程序时根据栈的规则,就是从最后开始,也就是空间分配时最后的那个开始,】栈的储存规则是从高内存的地方(地址)向低内存的地方(地址)填充【先把快满得得水缸打满】,当数据入栈后,栈指针就会随之调整,并始终指向下一个空闲的储存单元,假设 要把一个值储存到栈里边,设这个值有 7 个字节要储存到栈指针指向的储存单元下面(800000),因为要放 7 个字节, 所以要从栈指针对应的值中 减 7,所以他现在指向的位置时 799993,储存完毕后 指向下一空闲单元799992。 再储存一个字节 为 3 的值 ,所以这个值应该放在栈上的储存单元 799993~799990 上,指针对应值减去 3 然后指向栈上的下一个空闲单元 799989
在这里插入图片描述
枚举 :
枚举是我们自己定义的整数类型。
枚举是常量的集合,里面定义的都是一些已知的常量。

属性:是一个方法 或两个方法,
get (读取)不带任何参数,要有返回属性声明的类型
set (写入) 不指定任何显示参数,系统会假定他带一个参数,类型和属性相同,表示为 value
public int a{get;set}

private int a;//一个私有的属性
public int a{ get{ return aa;} set{aa = value }}

自动实现的属性: 编辑器自动创建,可以用属性初始化器来初始化
public int a{get;set} = 7 //相当于给 属性赋值 ,初始值为7.

如果不希望在初始化后修改数据成员,可以用只读成员 readonly 关键字 相当于加了一个锁。
只读属性:
在属性定然中省略 set(写入)访问器 用 readonly 修饰符声明字段,只允许在构造函数中初始化属性的值
private readonly string a;
public string a { get{return a;}

自动实现只读属性:
public string a{ get;} = Guid.newGuid().Tostring();

泛型:
泛型(类似于 object object 是个 父类), 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许编写一个可以与任何数据类型一起工作的类或方法。 允许延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许编写一个可以与任何数据类型一起工作的类或方法。

WPF碎碎念
WPF是基于Direct3D创建。在WPF应用程序中无论是2D还是3D的图形或者文字内容都会被转换为3D三角形、材质和其他Direct3D对象,并由硬件负责渲染,因此它能够更好的利用系统的图像处理单元GPU,从硬件加速中获得好处。
XAML语言(xaml 和 html 类似,都是xml 的子 xml 一种控制文件传输的语言):是微软公司为构建应用程序用户界面而创建的一种新的“可扩展应用程序标记语言”,提供了一种便于扩展和定位的语法来定义和程序逻辑分离的用户界面。
特点:XAML命名空间的语法:
xmlns[:可选映射前缀]=“命名空间描述”
注意:没有加可选映射前缀的xmlns是WPF默认的命名空间,一个xaml文件只能有一个默认的命名空间
一个完整的xaml文件,必须具备两个命名空间。
各个文件夹的定义:
在这里插入图片描述
引用各个类的方法:
在这里插入图片描述

依赖属性:
一种自身 可以没有值,可以通过绑定其他数据源获取值,
1、属性变更通知
无论什么时候,只要依赖属性的值发生改变,wpf就会自动根据属性的元数据触发一系列的动作,这些动作可以重新呈现UI元素,也可以更新当前的布局,刷新数据绑定等等,这种变更的通知最有趣的特点之一就是属性触发器,它可以在属性值改变的时候,执行一系列自定义的动作,而不需要更改任何其他的代码来实现。通过下面的示例来演示属性变更通知
2.继承属性,
属性值自项向下沿着元素树(以每个元素作为一个节点 形成的树状结构)进行传递。

WPF 中控制窗口显示位置的三种方式:
1,在屏幕中间显示 WindowStartupLocation.CenterScreen;
2,在父窗口中间显示,WindowStartupLocation.CenterOwner;,并指定Owner。
3. 在任意位置显示,WindowStartupLocation.Manual;并制定窗口的Left和Top坐标。
逻辑树:我们可以把每个元素看成一个结点,并且节点之间存在上下级关系, 节点的集合 就叫逻辑树,
BorderThickness 边界的宽度
cornerRadius 角的弧度
borderbrush 背景色
ClickMode 点击触发事件 有3种方式:
hover 鼠标悬停在按钮上的时候触发的click 事件,
press 按下鼠标时触发click事件
release 释放按键时触发事件
borderThickness 是一个属性,边框厚度
注意区分
Border.BorderThickness 引用资源字典里的属性 也就是引用别人的东西, 是一个依赖属性
三层架构分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)
再加上实体类库(Model)

DAL(数据层) :访问数据库的类库 对数据库的增删查改操作
BLL(逻辑层) : 对传送数据进行逻辑判断分析,并传送正确的值,是UI 和DAL 之间沟通的桥梁 数据传输和数据处理
UI(表现层): 就是用户页面
DispatcherTimer 引用声明一个计时器
UserControl 创建简单的控件
Thickness 在C#后台代码中改变某一元素的外边距:
// 参数:
// left: 矩形左边的粗细。
// top: 矩形的左上角的粗细。
// right: 矩形的右侧的粗细
// bottom: 矩形的下半部分端的粗细。
public Thickness(double left, double top, double right, double bottom)
接口类:
ICustomTypeDescriptor 提供为对象提供动态自定义类型信息的接口。

WPF 查询
首先在数据库中写 查询语句的存储过程 将要查询 在数据库查找出来, 然后被DAL层访问并存储,然后传到BLL层进行数据的逻辑处理,最后就是在UI层表现出来,
数据库的存储过程:
在这里插入图片描述

DAL层的数据访问,也就是从数据库获取数,从数据库访问的数据有两种形式 一种是以表的形式,一种是以集合的形式传递,两者之间又可以相互转换(在BLL层)
在这里插入图片描述

BLL层的数据的逻辑处理,将DAL传递过来的数据进行你想要的逻辑判断然后反馈给UI曾层
UI层就是界面处理,将你从数据库查找的数据变现在用户界面上

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值