C#
zq爱生活爱代码
这个作者很懒,什么都没留下…
展开
-
经典的事件模式(观察者模式)搭配 跨线程调用控件
进行事件1的时候,可以同时进行事件2假如有一个烧水的动作,从0-100。我们要在stripbar中显示进度。同时还不能堵塞主线程为了架构具有拓展性,我们在这里使用事件模式来驱动首先新建一个事件类,包含 水温这个属性using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 观察者模式...原创 2020-12-24 18:43:25 · 263 阅读 · 2 评论 -
新建委托的几种方式
正常的话我们建立一个事件委托,是否有返回值,名称,参数类型public delegate void Delobj(string name1,string name2);声明好委托之后我们可以对委托进行赋值,也就是传递方法给委托public void func1(string name1,string name2){}Delobj do=func1;或者 Delobj do=new Delobj(func1);然后执行这个委托string name1="张三";string原创 2020-12-20 23:37:41 · 710 阅读 · 1 评论 -
C# BackgroundWorker使用讲解
首先我们要知道为什么要用这个如果你需要异步操作的话,不影响前台UI操作的吗,那么就可以使用这个。更方便的进行异步操作。同时可以跨线程调用其他的控件。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.T.原创 2020-12-18 20:19:36 · 1008 阅读 · 1 评论 -
提供文件操作进度对话框
在 Visual Studio 中添加引用1. 在菜单栏上,依次选择“项目”、“添加引用”。此时将显示“引用管理器”对话框。2. 在“程序集”区域,选择“Framework”(如果尚未选择它)。3. 在名称列表中,选择“Microsoft.VisualBasic”复选框,然后再选择“确定”按钮以关闭对话框。示例// The following using directive requires a project reference to Microsoft.VisualBasic.原创 2020-12-15 09:03:54 · 130 阅读 · 0 评论 -
多线程复习笔记
初始小例子class Program { static void Main(string[] args) { Console.OutputEncoding = Encoding.Unicode; //1 基本 Thread.CurrentThread.Name = "主线程"; Thread objt = new Thread(new ThreadStart(Metho.原创 2020-11-22 19:58:41 · 132 阅读 · 0 评论 -
Task WhenAny() WhenAll()区别
Task.WhenAny()Task.WhenAll()这两个与waitALL,waitAny是有区别的when是异步的,wait是同步的例子Task[] ts = new Task[] {new Task(()=> { Thread.Sleep(3000); Console.WriteLine("触发1"); }), new Task(() => { Thread.Sleep(9000); Console.WriteLine("触发2"); }) .原创 2020-11-22 19:57:16 · 941 阅读 · 0 评论 -
C# 多线程相关Demo测试
笔记初始小例子class Program { static void Main(string[] args) { Console.OutputEncoding = Encoding.Unicode; //1 基本 Thread.CurrentThread.Name = "主线程"; Thread objt = new Thread(new ThreadStart(M原创 2020-08-19 15:15:22 · 549 阅读 · 0 评论 -
linq学习以及相应的Lambda 扩展
基本设定using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace linqTest{ class MartialArtsMaster//功夫高手信息 { publi...转载 2020-03-23 20:37:06 · 111 阅读 · 0 评论 -
C# 反射获取属性的值
[AttributeInfo("张三","男",29,message ="测试人员信息")] [AttributeInfo("李四","女",229,message ="测试人员信息222")] class testAttr { [AttributeInfo("王五","不男不女",33,message ="泰国人妖")] public int sum(int a,int b) { return a + b;.原创 2020-08-08 17:00:42 · 596 阅读 · 0 评论 -
C# 反射 读取 类的 类注释,方法注释,属性注释
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace AttributeTest{ [AttributeUsage(AttributeTargets.All,AllowMultiple =true)] class AttributeInfo:Attribute { p.原创 2020-08-07 19:57:55 · 6049 阅读 · 0 评论 -
C# 控制台应用程序 中文乱码
解决控制台乱码 Console.OutputEncoding = Encoding.Unicode;原创 2020-08-07 19:56:29 · 1177 阅读 · 0 评论 -
C# 自定义一个DataTable 并 转成成对象集合
DataTable dt = new DataTable(); DataColumn dc = new DataColumn("name", typeof(string)); dt.Columns.Add(dc); dc = new DataColumn("age", typeof(Int32)); dt.Columns.Add(dc); DataRow dr = dt.NewRow.原创 2020-08-07 19:11:17 · 409 阅读 · 1 评论 -
async/await 异步编程 跨现场调用控件
private async void button1_Click(object sender, EventArgs e){ var t = Task.Run(() => { Thread.Sleep(5000); return "Hello I am TimeConsumingMethod"; }); textBox1.Text = await t;}原创 2020-05-28 09:46:49 · 199 阅读 · 0 评论 -
async await 简单例子
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace TaskTest{ class Program { static void Main(string[] args) { callMet.原创 2020-05-27 16:10:34 · 329 阅读 · 0 评论 -
C# Task 任务执行完成后和 后续任务 的执行
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;namespace winfor.原创 2020-05-13 23:46:27 · 7078 阅读 · 0 评论 -
C# Task用法--简单V1
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;namespace winfor.原创 2020-05-13 23:34:44 · 273 阅读 · 0 评论 -
C# invoke 异步编程 V2 (跨线程调用控件)
上一篇已经实现了异步功能,不过数据是通过控制台输出。如果需要在控件中显示的话,那么就涉及到跨线程调用控件的问题了winform规定 不能跨线程访问其他线程创建的对象以下是我修改后的代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;us...原创 2020-05-03 22:20:51 · 524 阅读 · 0 评论 -
C# invoke 异步编程
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tas...原创 2020-05-03 16:43:58 · 545 阅读 · 0 评论 -
easyui menubutton测试demo
点击cut<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MenuButton.aspx.cs" Inherits="EasyUITest.MenuButton" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml...原创 2020-05-02 10:43:58 · 211 阅读 · 0 评论 -
asp.net MVC HTMLHELPER
A标签编译后的截图第一个是写死的 链接,但有的时候 再route中注册的路由规则会变,然后这里就要改变现有一种灵活的方法,如截图 第一个OBJ 是传值,第二个OBJ是属性绑定 class的话,需要用@ 转义一下<% : %> <% = %>冒号与等于号的区别如果想: 也输入HTML,那么 下面也可以...原创 2020-04-07 22:05:15 · 109 阅读 · 0 评论 -
C# 操作文件进度提示框
using Microsoft.VisualBasic.FileIO;class FileProgress{ static void Main() { // Specify the path to a folder that you want to copy. If the folder is small, // you won't hav...原创 2020-03-29 22:41:35 · 283 阅读 · 0 评论 -
C# 扩展方法
注意,扩展方法是静态方法public static class External { public static int sum(this ArrayList list) { var s = 0; foreach(var i in list) { s ...原创 2020-03-29 19:11:25 · 102 阅读 · 0 评论 -
C# 连接Oracle Demo
安装包Oracle.ManagedDataAccessusing Oracle.ManagedDataAccess.Client;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ...原创 2020-03-26 15:54:03 · 386 阅读 · 0 评论 -
DataTable 转换成 实体类model List<t>
using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;namespace Utils{ public class Dat...转载 2020-03-16 16:25:36 · 216 阅读 · 0 评论 -
C# SQLHelper
using System;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Threading.Tasks;using S...原创 2020-03-15 22:46:29 · 189 阅读 · 0 评论 -
lambda skip take
Skip 是跳过的意思var rlist=List.Skip(5); 意思是跳过前面五个元素,返回剩下的元素rlist是第6个到最后的元素,原数组不变var rlist=List.Take(5); 意思是选取前面五个元素返回...原创 2020-03-01 22:03:17 · 647 阅读 · 0 评论 -
lambda Join GroupJoin
Join两个互相Join的集合顺序随意,不过后面的key ,以及返回结果函数 参数的顺序要和join的顺序一致 // 初始化员工信息 var persons = new[] { new Person { Id = 1, Name = "张三" }, new Person { Id = 2, Name = "李四" }, new Person { Id = 3,...原创 2020-03-01 21:29:24 · 2211 阅读 · 1 评论 -
lambda GroupBy
标准用法public class Student{ public string Name { get; set; } public bool Graduation { get; set; } public int Age { get; set; } public int Score { get; set; } public string Ci...原创 2020-03-01 20:32:33 · 974 阅读 · 0 评论 -
lambda OrderBy ThenBy ThenByDescending 多条件排序
List<Person> array = new List<Person>(); array.Add(new Student("aa",15,150)); array.Add(new Student("aa",15,150)); array.Add(new Student("aa",12,150));...原创 2020-03-01 19:01:38 · 1118 阅读 · 0 评论 -
lambda selectMany (就是将查询出来的多个集合,合并到一起,返回一个合并后的集合)
class Person { public string Name { set; get; } public int Age { set; get; } public string Gender { set; get; } public Dog[] Dogs { set; get; } }public cla...转载 2020-03-01 18:48:44 · 2670 阅读 · 0 评论 -
SqlDataAdapter以及属性 SelectCommand InsertCommand UpdateCommand DeleteCommand
SqlDataAdapter 比DataAdapter更进一步,专门用来操作SQL Server 数据库。一、 方法 SqlDataAdapter有两个有用的方法,分别为 fill 和 update。下面分别来介绍这两方法。1. fill 方法 fill 方法是用来填充 DataSet 的。也就是,把数据库中的运送到C#空间。fill 有13个重载的方法,在使用时可以根据情况选...转载 2020-02-27 23:00:57 · 1941 阅读 · 0 评论 -
关键字where的泛型约束,可以约束方法,也可以约束类 没用过,了解一下
泛型的Where 泛型的Where能够对类型参数作出限定。有以下几种方式。 ·where T : struct 限制类型参数T必须继承自System.ValueType。 ·where T : class 限制类型参数T必须是引用类型,也就是不能继承自System.ValueType。 ·where T : new() 限制类型参数T必须有一个缺省的构造函数 ·where ...转载 2020-02-27 20:50:58 · 196 阅读 · 0 评论 -
delegate event 小demo 以及 Action 和Func 简单概念
一个(烧水)订阅事件的小栗子。。。。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;/// <summary>/// 订阅事件,通过烧水的温度,到一...原创 2020-02-27 20:16:50 · 92 阅读 · 0 评论 -
委托,事件 烧水的小dmeo
烧水的类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;/// <summary>/// 订阅事件,通过烧水的温度,到一定温度的时候,触发事件//...原创 2020-02-29 22:10:26 · 99 阅读 · 0 评论 -
IComparer IEqualityComparer 集合的sort排序以及distinct 去重 还有一种更简单的方法lamda
实现排序以及去重的类using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace icomparerTest{ class PersonIc...原创 2020-02-26 20:26:44 · 227 阅读 · 0 评论 -
ADO.NET 连接SQL server 基本 SqlConnection SqlCommand ExecuteScalar executeReader sqlAdapter
static class SQLHelper { public static string constr = ""; public static void getConstr() { constr=ConfigurationManager.ConnectionStrings["ZQDB"].ConnectionStr...原创 2020-02-24 22:00:35 · 133 阅读 · 0 评论 -
读取app.config和web.config 配置信息
config<?xml version="1.0" encoding="utf-8" ?><configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> </startup...原创 2020-02-24 20:57:38 · 248 阅读 · 0 评论 -
DBContext 高性能实例创建
CodeFirstDBContext dbContext = null; if(HttpContext.Current.Items["CodeFirstDBContext"]==null) { dbContext= new CodeFirstDBContext(); HttpContex...原创 2020-01-20 20:43:05 · 536 阅读 · 0 评论 -
is&as关键字比较
is关键字用于检查对象是否与给定类型兼容。注意了,这里的is并不是“是”的意思,而是“兼容”。也就是说,如果被检查对象能够强制转换成给定类型并不发生异常,那么表示它们类型兼容。如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则is表达式的计算结果将是 true;否则,发生异常时is表达式将返回false。is的使用方式:if (obj is MyObject...转载 2020-01-20 19:54:48 · 177 阅读 · 0 评论 -
Validation failed for one or more entities. See ‘EntityValidationErrors’解决方法
Validation failed for one or more entities. See ‘EntityValidationErrors’解决方法 Validation failedforone ormoreentities.See‘EntityValidationErrors’propertyformoredetails. Unfortunately there...转载 2020-01-14 14:25:10 · 1068 阅读 · 0 评论