![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
1.c#_学习笔记
文章平均质量分 55
学习记录一下。
Lucus_Taylor
这是个最好的时代,喜欢互联网的分享精神。
展开
-
1.WPF 布局,样式
不论是QT,winform,Wpf各种IDE无论是手机还是pc桌面还是书籍都少不了布局。布局要解决元素如何摆放的问题。目前WPF有以下几种布局的方式。Grad:可以把界面切成田字格容器。StackPanel:在一个平面上从左到右或者从上到下来放置元素的容器。DockPanel:可以让部件停留在最左边最右边上边或者最下边的容器。WrapPanl:和StackPanel对比多了自动换行功能。UnifromGrid:指定行和列,均分容器。Canvas:股东左边设置元素的位置。...原创 2022-10-07 16:21:39 · 331 阅读 · 0 评论 -
WPF 1.Binding
Bingding原创 2022-09-19 10:20:39 · 149 阅读 · 0 评论 -
C#实践笔记5_2 多线程的同步操作锁
记录一下常用的3种锁 1.lock2.Monitor3.Mutex 感觉没有C++的种类丰富哦。少点也好。使用锁的时候我们要先定义锁的对象,对象应该是什么样的呢?定义的锁对象应该是 私有的,只读的,这样可以防止外部改变静态的 线程只认锁,即使不是一个示例,只要是同一把静态锁也能起到同步作用,引用类型的对象这个,,谁来解释一下。1.lock的使用Lock是Monitor的语法糖。Lock只能针对引用类型加锁。private static readonly object lock = new o原创 2021-08-04 15:33:06 · 233 阅读 · 0 评论 -
C#实践笔记4.语言_语法的使用
一.using static1.C#6 using static新语法,可以简化前缀:例: 1 using static System.Console; //1.使用using static 2 3 namespace test 4 { 5 internal class Program 6 { 7 private static void Main(string[] args) 8 { 9 WriteLine("t原创 2021-07-31 11:21:36 · 120 阅读 · 0 评论 -
C#实践笔记3.数据类型之间的转换
前言无论是什么语言在开发的过程中,总会遇到不同类型数据之间的转换。C#也不例外,不过C#已经帮我们做好了一些转换的方法。一.常用的转换类。EncodingBitConverterConvertMarshalnamespace System 空间下的静态方法比如:int.Parse()二.数据转换1.byte[] => string方法1:string str1 = System.Text.Encoding.Default.GetString(byteArray);方法2:st原创 2021-07-26 15:01:23 · 166 阅读 · 0 评论 -
c# 实践笔记 2.windows应用程序之间的通讯
工作中遇到在同一个pc上不同程序之间的通讯,那就梳理记录一下。目前常用的方式有3种:1.使用Windows的API 2.共享内存 3.通过socket1.使用windows的API原创 2021-07-19 15:23:08 · 1178 阅读 · 1 评论 -
c# 实践笔记1.switch case的替代方案
//具体描述后面有时间补上,先上代码using System;using System.Collections.Generic;namespace ConsoleApp1{ class Program { public delegate void RelaceSwitch(string str); private static Dictionary<string, RelaceSwitch> ReplaceSwitch = new D原创 2021-04-22 16:32:12 · 553 阅读 · 0 评论 -
C# 学习笔记 20.网络编程
1.基础知识OSI(open system interconnection)模型把网络通信分成7层:物理层,数据链路层,网络层,传输层,会话层,表示层,和应用层。网络开发人员一般分成5层 应用层 传输层 网络层 数据链路层 物理层2.基于TCP的网络程序的实现tcp的工作过程可以划分为3个阶段:连接的建立,传输数据和断开连接。TCP的连接建立是通过3次握手最终完成的。...原创 2021-04-24 12:49:39 · 279 阅读 · 0 评论 -
C# 学习笔记 19.文件操作
1.文件操作的核心类 .net framerwork提供的文件操作基本都在system.io命名空间下。C#学了之后感觉比c++用起来方便很多。c++如果融入更多好的工具包多好。2.File类FILE 的方法都是静态的效率高。先对Fileinfoclass Program { static void Main(string[] args) { FileStream fs = null; Stre原创 2021-04-20 10:00:35 · 196 阅读 · 0 评论 -
C# 学习笔记 18.异步编程
1.何为异步编程异步编程就是把耗时的操作放入一个单独的线程中处理,不要阻塞主线程,线程任务完成后通知主线程。2.同步的方法实现原创 2021-04-18 22:38:51 · 136 阅读 · 0 评论 -
C# 学习笔记 17.多线程编程
1.进程与线程一个应用程序可以有多个进程,一个进程至少有一个线程。2.线程与调度Windos是抢占是多线程操作系统,windows支持7个线程优先级。3.前后台线程主线程结束后会终止后台线程 class Program { static void Main(string[] args) { Thread t1 = new Thread(Worker); //主线程结束后台线程不会运行原创 2021-04-05 20:48:56 · 86 阅读 · 0 评论 -
C# 学习笔记 16.动态类型
一、动态类型介绍c#是静态类型语言,因为它在定义变量的时候要明确给出变量的类型。c#4.0中微软引入了dynamic关键字来动议动态类型。二、为什么引入动态类型1.减少强制类型转换的使用2.调用python等动态语言三、动态类的约束...原创 2021-04-05 10:33:23 · 346 阅读 · 0 评论 -
C# 学习笔记 15. 可选参数,命名实参与泛型的可变性
1.可选参数//c++中的默认参数而已2.命令实参//填入参数的时候c++要求你按顺序填入,C#中如果有参数(1,2 =deafult,3=deafult)可以填入参数1和指定参数3class Program { static void Main(string[] args) { TestMethod(1); TestMethod(1,2); TestMethod(1, 2,原创 2021-04-04 22:25:37 · 226 阅读 · 1 评论 -
C# 学习笔记 14. 数据库操作 Linq 解析
1.Linq是什么?linq是language Intergrated query ,即"语言集合查询”linq提供了一种跨越各种数据库的统一查询方式,它主要包含4个组件。2.使用linq to object 查询集合例子1: class Program { static void Main(string[] args) { List<int> inputArray = new List<in原创 2021-04-04 17:15:05 · 268 阅读 · 0 评论 -
C# 学习笔记 13. 类的扩展方法
1.扩展方法是一种方法,可以用来扩展已定义的类型中的方法成员。1.扩展方法必须在非嵌套,非泛型静态类中定义。2.它至少有一个参数;3.第一个参数必须加上this 关键字作为前缀。4.第一参数不能使用其它任何修饰符(ref,out 等)5.第一个参数类型不能是指针类型。//例子1namespace currentExtern{ using customerExtren; public class Person { public str...原创 2021-04-04 11:54:53 · 1277 阅读 · 0 评论 -
C# 学习笔记 12. Lambda表达式
1.什么是Lambda表示式//c++也有lambda的用法匿名函数可以理解为一个匿名的方法,可以包含表达式和语句。lambda 都会使用 =>运算符,左边是匿名方法的输入参数,右边是是表示式或语句块。...原创 2021-04-03 15:22:32 · 132 阅读 · 0 评论 -
C# 学习笔记 11.c# 3.0智能编译器
1.自动属性实现1.自动属性实例class person { // 写起来就方便很多了 public string Name { get; set; } public int Age { get; set; } public void setName(string name) { Name = name; } }2.在结构体中使用自动属性的时候,需要注意,...原创 2021-04-01 17:03:59 · 103 阅读 · 0 评论 -
C# 学习笔记 10.可空类型,匿名方法,迭代器
1.可空类型1.可空类型也是值类型,但是它包含了null值的值类型。表示一个可空类型int i = null;// 报错 无法将 null 转换为“int”,因为后者是不可以为 null 的值类型int? i = null; 编译通过 //但是c#中肯定没有int?这个类型,编译器会解释Nullable<int> 类型,即可空类型。可空类型的定义是 public struct Nullable<T> where T : struct//定义Nulla...原创 2021-03-31 14:14:48 · 272 阅读 · 0 评论 -
C# 学习笔记 9.泛型
1.什么是泛型实现一个方法可以操作多种数据类型。//类似c++的模板或者STL原创 2021-03-30 22:54:31 · 208 阅读 · 0 评论 -
C# 学习笔记 8.深入理解类型
1.类型分类 值类型和引用类型值类型-简单的类型,枚举类型,结构体类型。通常分配在栈上。引用类型-类类型,接口类型,委托类型,字符串等。分配在堆上,变量保存的是实例数据的地址。2.值类型和引用类型的区别1.值类型中嵌套定义引用类型,栈上保存该引用类型的引用,而实际数据仍保存在托管堆中。2.引用类型中嵌套值类型 ,如果字段值是值类型,它将作为引用实例的一部分,分配到堆上。作为局部变量,则分配到栈上。3.值类型继承ValueType,ValueType又继承自Syste.原创 2021-03-29 10:24:54 · 68 阅读 · 0 评论 -
C# 学习笔记 7.事件
1.什么是事件事件 -事件的发布者和事件的订阅者。原创 2021-03-28 15:39:34 · 97 阅读 · 0 评论 -
C# 学习笔记 6.委托-4 委托和事件的区别
转载_AdworeC# 中的委托和事件引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。将方法作为原创 2021-08-22 12:42:25 · 185 阅读 · 0 评论 -
C# 学习笔记 6.委托-3 委托和事件的区别
C#中委托和事件的区别大致来说,委托是一个类,该类内部维护着一个字段,指向一个方法。事件可以被看作一个委托类型的变量,通过事件注册、取消多个委托或方法。本篇分别通过委托和事件执行多个方法,从中体会两者的区别。□ 通过委托执行方法class Program{ static void Main(string[] args) { Example example = new Example(); example.Go(); Console.Re原创 2021-07-31 11:19:13 · 132 阅读 · 0 评论 -
C# 学习笔记 6.委托-2
委托是c#最重要的特性之一,c#后面所有的特性基本都是建立在委托的基础之上。1.c#的委托是什么c# 中的委托可以理解为函数的一个包装,C#中的函数以参数的方式进行传递,这相对与C++中的函数指针。委托的定义和方法的定义类似,在定义前面加上delegate关键字。举例: class Program { delegate void RunCmd(); // 声明委托类型 static RunCmd runcmd1; // 声明委托对象变量 s原创 2021-07-31 11:16:46 · 74 阅读 · 0 评论 -
C# 学习笔记 6.委托-1
委托是c#最重要的特性之一,c#后面所有的特性基本都是建立在委托的基础之上。1.c#的委托是什么c# 中的委托可以理解为函数的一个包装,C#中的函数可以参数进行传递,这相对与C++中的函数指针。委托的定义和方法的定义类似,在定义前面加上delegate关键字。委托能包装的方法有一定的限制1)方法的前面和委托一致,包括参数个数,类型,顺序。2)方法的返回类型要和委托一致,方法的返回类型不属于方法签名的一部分。2.为什么要引入委托委托可以使得一个方法作为另一个方法的参数进行传原创 2021-03-28 14:31:09 · 85 阅读 · 0 评论 -
C# 学习笔记 5.IL 语言
无论要精通哪门技术,都应从其本质出发,探明核心的运作机理,最终有效地理解和掌握。1.什么是ILIntermediate Language 也称为CIL 或者 MSIL中文 “中间语言”。利用visual studio 中的c#编译器我们可以直接把程序编译为.exe和.dll,但编译出来的东西不是cpu可以执行的二进制代码而是 IL代码。2.如何看IL代码使用vs2015 开打路径C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\.原创 2021-03-28 09:36:53 · 2528 阅读 · 1 评论 -
C# 学习笔记 4.c#接口
1.定义C#中你想同时拥有两个类的的方法,但C#不像c++可以多重继承为了解决这个问题c#提出了接口的方式。接口:提供了一种方法的声明,但没有提供方法的实现。后面继承的类需要实现这些方法。//有点像c++的纯虚函数。可以避免每个类都重复定义这些方法。注意:1.接口中不能添加任何访问修饰符。2.接口中可以定义:方法,属性,事件,索引器,或者这个4种的组个。不能包含字段,运算符重载,构造和析构函数。3.接口中所有的成员默认都是公共的,所有不要使用protected public.原创 2021-03-28 08:37:09 · 91 阅读 · 0 评论 -
C# 学习笔记 3.面向对象编程
1.面向对象编程1.面向对象的语言都有3个基本特征 封装 继承 多态封装:把客观的事物封装成类,并将类内部的实现隐藏,以保证数据的完整性。继承:复用父类代码。多态:允许子类重写父类的方法。1.封装c#把类内部的数据隐藏起来,不让对象实例直接操作。通过public,private,protected,internal,等关键字来实现。...原创 2021-03-27 21:46:28 · 95 阅读 · 3 评论 -
C# 学习笔记 2.关于类
1.类 class1.class的默认访问修饰符为 internal2.类修饰符的访问权限类成员的访问权限3.字段 修饰符+类型+名称 ex: private string name;可以加上关键字 const(定义需要初始化) readonly ,static(静态字段只能通过类名进行访问)public class Person {public static string name;}ex: Person.name 来访问4.属性属性是对字段的扩展。...原创 2021-03-26 13:04:33 · 88 阅读 · 0 评论 -
C# 学习笔记 1.初识
目录1.数据类型讲解。 对比c++2.字符串3.结构体4.枚举5.数组6.初始化数值7.static 关键字8.const1.const 默认是static不可以更改。9.运算符1.优先级10语句1. if else2. switch case3.while, do while,for ,foreach4.break 退出整个循环 continue 终止本次循环 goto 跳转的标记位置 return 退出循环和循环所在的函数。...原创 2021-03-26 09:24:57 · 326 阅读 · 1 评论