C#
雨中深巷的油纸伞
这个作者很懒,什么都没留下…
展开
-
C#基础题
值类型和引用类型之间的区别是什么?类和结构之间的区别是什么?接口和抽象类之间的区别是什么?委托和事件之间的区别是什么?泛型和非泛型类之间的区别是什么?原创 2024-02-01 14:33:19 · 1858 阅读 · 0 评论 -
rsa加密
rsa加密原创 2022-12-14 15:48:12 · 219 阅读 · 0 评论 -
linq批量更新实体数据
logs = logs.Select(p => { p.RecordID = recordID; p.FileSourceType = 2; p.CreateTime = DateTime.Now; return p; .原创 2020-06-09 10:22:54 · 1274 阅读 · 0 评论 -
NetAdvantage_UltimateWithSamplesAndHelp_20103基本操作
1.首先在winform界面添加UltraGrid控件,添加完成后字段名还未显示,点击start进行设置首先添加字段名(最好跟数据库中一致,方便操作)添加完后点击确定然后绑定数据源设置对应字段名的中文还可以对字段名的显示顺序(顺序可进行上下拖拽),显隐藏等进行设置还可添加勾选框(先添加一个未绑定的字段,名称自己写)然后设置此未绑定字段的属性设置其style为CheckBox,界面上可成功看到勾选框...原创 2018-06-25 17:36:17 · 391 阅读 · 0 评论 -
C#实现状态栏提示信息功能
本功能是在winform平台上实现的,其他平台大同小异,不多做介绍。1.首先创建一个测试用winform窗体2.在winform窗体上添加一个notifyIcon控件然后设置notifyIcon属性,可自行修改其name属性,本文中name属性为notifyIcon1,注意此时点击查看ContextMenuStrip属性时显示的是无,所以我们还需要添加一个ContextMenuStrip控件此时再...原创 2018-06-22 17:00:14 · 11555 阅读 · 0 评论 -
详解C#委托,事件与回调函数
.Net编程中最经常用的元素,事件必然是其中之一。无论在ASP.NET还是WINFrom开发中,窗体加载(Load),绘制(Paint),初始化(Init)等等。“protected void Page_Load(object sender, EventArgs e)”这段代码相信没有人不熟悉的。细心一点一定会发现,非常多的事件方法都是带了“object sender, EventArgs e”这...转载 2018-06-26 16:23:12 · 199 阅读 · 0 评论 -
winform+UltraGrid实现导入导出
1.导入设计界面如图点击浏览按钮实现选择要导入的Excel表并将表名加载到文本框内,同时读取Excel表中的内容加载到UltraGrid上具体实现代码:private void button1_Click(object sender, EventArgs e) {//导入 System.Windows.Forms.OpenFileDialog fd = new...原创 2018-06-26 09:26:47 · 1221 阅读 · 0 评论 -
C#用反射实现两个类的对象之间的值的复制
在进行实体转换操作的时候如果需要在对两个实体之间两个属性字段差不多相同的类要进行一个互相的转换,我们要把a对象的所有字段的值都复制给b对象,我们只能用b.属性=a.属性来写,如果属性字段太多的话,就要写很多行复制语句,麻烦还容易漏掉一些,这个时候可以利用c#的反射来实现复制。我们可以写这样一个利用泛型的映射函数。1.适用于创建实体的时候从一个实体作为数据源赋值 /// &l...原创 2018-12-03 14:08:32 · 1302 阅读 · 1 评论 -
NetAdvantage控件使用
1。添加ColumnStart\Basic Settings\Data Schema\Manually Define a Schema\添加Column,命名用数据库中的字段名。2。添加Column中文名称Band and Column Settings\Band [0](手动添加Column后)\Columns\选择列\Header\修改Caption属性3。整个表的属性在Basic Setti...转载 2018-06-26 14:14:48 · 3078 阅读 · 0 评论 -
C#winform实现串口通信读取电子天平数据
1.本文中所试用的是针对赛多利斯电子天平的称重数据读取,可试用赛多利斯电子天平的类型为SQP系列和BSA系列,两种类型的区别在波特率等的设置不同,其他相同。点击开始实验,打开串口,准备读取数据,读取到的数据自动显示在改称重结果上;具体实现代码: SerialPort receivePort = null; public delegate void UpdateTextEventH...原创 2018-06-26 14:05:23 · 10001 阅读 · 0 评论 -
C#反射将DataTable转换为实体,将DataRow转换为对象实体
//将DataTable转为对象实体:T为数据类型 public static List<T> DataTableToObjects<T>(DataTable dt) { List<T> objList = new List<T>(); if (dt != null &...原创 2018-12-12 13:58:03 · 1636 阅读 · 0 评论 -
cmd命令方式启动服务
sc create 服务名 binpath="D:\vsworkspace\CustomService\V1\SynchronizeGdkyProduct\SynchronizeGdkyProductService\bin\Debug\SynchronizeGdkyProductService.exe --service -r D:\vsworkspace\CustomService\V1\Sy...原创 2019-08-29 16:11:51 · 2294 阅读 · 0 评论 -
使用反射实现生成添加、修改sql语句
1.生成添加sql语句 //单独一个model时public static string InsertSql<T>(T t) { Type type = typeof(T); string tableName = type.Name; StringBuilder sb = new Strin...原创 2019-01-07 13:11:42 · 824 阅读 · 0 评论 -
DataTable转换成实体列表 与 实体列表转换成DataTable
/// <summary> /// DataTable转换成实体列表 /// </summary> /// <typeparam name="T">实体 T </typeparam> /// <param name="table">datatable<原创 2018-12-19 16:10:40 · 555 阅读 · 1 评论 -
Hashtable与object实体对象互转
/// <summary>/// C# Hashtable转object实体对象/// </summary>/// <typeparam name="T"></typeparam>/// <param name="source"></param>/// <returns&转载 2018-12-19 15:57:02 · 3997 阅读 · 0 评论 -
反射调用dll方法
namespace ReflectionTest{ public class WriteTest { //带参数的公共方法public void WriteString(string s, int i) { Console.WriteLine("WriteString:" + s + i.ToString()); } //带一个参数的静态方法public static void StaticWriteString(string s){ Console.WriteLine("Stati转载 2022-01-07 17:39:41 · 272 阅读 · 0 评论 -
cd更改当前路径
cd是change directory(改变目录)的缩写,该命令也可以写成chdir,用来改变当前目录。用法一:cd[/d][盘符:][路径名][子目录名][/?]或chdir[/d][盘符:][路径名][子目录名][/?]用法二:cd[..][\]或chdir[..][\]参数说明如下:/d 更改当前驱动器或当前目录/?显示该命令的帮助信息...原创 2020-08-27 09:18:19 · 1938 阅读 · 0 评论 -
死锁、活锁、饥饿、无锁
锁转载 2022-06-07 11:06:26 · 233 阅读 · 0 评论 -
long转时间 unity_C#时间格式转换为时间戳(互转)
using UnityEngine;using System.Collections;using System;////// C#时间格式转换为时间戳(互转)/// 时间戳定义为从格林威治时间 1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。///public class DateTime_TimeStamp : MonoBehaviour{undefinedprotected int m_timestamp;//////转载 2022-03-24 15:22:15 · 1297 阅读 · 0 评论 -
使用Distinct()内置方法对List集合的去重 问题
说到对集合去重处理,第一时间想到的肯定是Linq的Distinct扩展方式,对于一般的值类型集合去重,很好处理,直接list.Distinct()即可。但是如果想要对一个引用类型的集合去重(属性值都相同就认为重复),就会发现,直接Distinct()是不行的先来看看泛型链表 List 的定义:public class List : IList, ICollection, IList, ICollection, IReadOnlyList, IReadOnlyCollection, IEnumerable转载 2021-12-01 15:12:41 · 2101 阅读 · 0 评论 -
List<T>.Sort() 排序的用法
List 可以通过 .Sort()进行排序,但是当 T 对象为自定义类型时(比如自定义模型),就需要 IComparable接口重写其中的方法来实现,实现代码如下:class Program { static Func<Model, int> where = a => a.id; static Func<Model, bool> wherelambda = a => a.id < 3; static void转载 2021-10-13 11:49:21 · 334 阅读 · 0 评论 -
c# NPOI 导出Excel 冻结窗格
ISheet sheet = workbook.CreateSheet();//在工作薄中创建一个工作表sheet.CreateFreezePane(a, b, c, d);//冻结行/列CreateFreezePane中参数意思为:第一个参数表示要冻结的列数;第二个参数表示要冻结的行数,这里只冻结列所以为0;第三个参数表示右边区域可见的首列序号,从0开始计算序号;第四个参数表示下边区域可见的首行序号,从0开始计算序号,这里是冻结列,所以为0;CreateFreezePane(2, 0, 2,转载 2021-10-11 11:46:08 · 1086 阅读 · 0 评论 -
C# 获取当前,相对,绝对路径
一、C#获取当前路径的方法:System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName-获取模块的完整路径。System.Environment.CurrentDirectory-获取和设置当前目录(该进程从中启动的目录)的完全限定目录。System.IO.Directory.GetCurrentDirectory()-获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,有可能程序放在C:\www里,转载 2021-10-09 14:19:10 · 1090 阅读 · 0 评论 -
quartz使用过程中的一个尴尬问题
话说我想做一个任务,在每天晚上的1:30分执行,下面这段代码有毛病吗?@Bean(name = “jobTrigger”)public CronTriggerFactoryBean cronJobTrigger(JobDetail jobDetail){CronTriggerFactoryBean trigger = new CronTriggerFactoryBean();trigger.setJobDetail(jobDetail);trigger.setCronExpression("* 3转载 2021-09-23 16:52:01 · 185 阅读 · 0 评论 -
权限设计=功能权限+数据权限
权限管理 Authority Management目前主要是通过用户、角色、资源三方面来进行权限的分配。具体来说,就是赋予用户某个角色,角色能访问及操作不同范围的资源。通过建立角色系统,将用户和资源进行分离,来保证权限分配的实施。一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。场景举例企业IT管理员一般都能为系统定义角色,给用户分配角色。这就是最常见的基于角色访问控制。场景举例:给张三赋予“人力资源经理”角色,“人力资源经理”具有“查询转载 2021-05-21 16:37:50 · 2297 阅读 · 0 评论 -
C#读取匿名对象的属性值的方法总结
目录1、通过反射的方式获取属性值 2、新建个扩展方法,将object转成对应的匿名对象通过new出匿名对象,可以直接调用该匿名对象的属性名,获取属性值。var objUser = new {Name="Lilei",Age=18 };//此时可直接读取匿名类属性Console.WriteLine("Name:" + objUser.Name);// Name:Lilei但当将匿名对象转换成object后,就无法直接读取属性值了;static object GetObj().转载 2021-01-06 09:00:29 · 1040 阅读 · 0 评论 -
大数据与高并发解决方案
1.海量数据1. 缓存和页面静态化1.1 缓存数据量大这个问题最直接的解决方案就是使用缓存,缓存就是将数据库中获取的结果暂时保存起来在,在下次使用的时候无需从数据库中提取,这样可以大大降低数据库压力。常用的缓存框架有Ehcache、Memcache 和 Redis等。不过缓存也不是什么情况都适用,它主要用于数据变化不是很频繁的情况。而且如果是定期失效(数据修改时不失效)的失效机制,实时性要求也不能太高,因为这样缓存中的数据和真实数据可能会不一致。2.1 页面静态化页面静态化是将程序最后生成转载 2020-11-18 09:36:32 · 644 阅读 · 0 评论 -
解决报错:类型“System.Object”在未被引用的程序集中定义。必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, Public
Razor视图引擎中,使用部分视图编译报错类型“System.Object”在未被引用的程序集中定义。必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的引用查找网上一些解决方案,在微软官网找到同样问题最后解决方案:在web.config文件system.web/compilation节点添加配置节点<compi...转载 2020-11-04 15:18:59 · 6358 阅读 · 0 评论 -
你真的知道GET和POST两种基本请求方法的区别吗?
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标准答案”: GET在浏览器回退时是无害的,而POST会再次提交请求。 ...转载 2020-10-22 09:57:29 · 175 阅读 · 1 评论 -
从服务器下载文件到本地或者到自己的服务器
public JsonResult GetPlayRecord(string FilePath, string FileName) { if (string.IsNullOrEmpty(FilePath)) return JsonResultExt.Failed("文件不存在"); Stream stream = null; string playPath = "";//前端播放地址.原创 2020-09-17 13:44:15 · 470 阅读 · 0 评论 -
C#笔记---动态类(Dynamic)应用动态添加实体属性
背景:在Coding中有时候会遇到一些需要解析的数据,可是数据的字段数量和名称未统一,我们没法定义实体类来对应。那么我们就会想到通过C#的dynamic动态类来实现,如果大家注意的话一些ORM框架里面貌似都有用到dynamic来实现一部分功能。 一.Dynamic的基本应用 1.1 通过.PropertyName来添加属性,和JavaScript的对象差不多.不过对于我们所要解析的数据,我们事先也许根本不知道属性名称,所以用这种方法意义不大.dyna...转载 2020-09-10 16:31:50 · 11914 阅读 · 3 评论 -
C#本地时间和GMT(UTC)时间的转换
/// <summary>/// 本地时间转成GMT时间/// </summary> public static string ToGMTString(DateTime dt) { return dt.ToUniversalTime().ToString("r");}string s = ToGMTString(DateTime.Now);//本地时间为:2016-6-30 10:04:39//转换后的时间为:Thu, 30 Jun 2016 2:04:3.转载 2020-09-09 10:12:50 · 2463 阅读 · 0 评论 -
Quartz WithCronSchedule 说明
示例:"0 15 9 * * ? " 每天 9:15点通配符说明:* 表示所有值. 例如:在分的字段上设置 “*”,表示每一分钟都会触发。? 表示不指定值。使用的场景为不需要关心当前设置这个字段的值。例如:要在每月的10号触发一个操作,但不关心是周几,所以需要周位置的那个字段设置为”?” 具体设置为 0 0 0 10 * ?- 表示区间。例如 在小时上设置 “10-12”,表示 10,11,12点都会触发。, 表示指定多个值,例如在周字段上设置 “MON,WED,FRI” 表示周一,周三和周..转载 2020-08-24 14:30:32 · 1511 阅读 · 0 评论 -
.NET CORE后台请求API
HttpClient和WebClient的区别:https://www.codebye.com/c-sharp-webclient-vs-httpclient.html1.HttpClient方式 HttpClient webClient = new HttpClient(); webClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken); var formd.转载 2020-08-24 09:04:56 · 725 阅读 · 0 评论 -
List中对比Contains, Exists, Any之间的优缺点
在List<T>中,Contains, Exists, Any都可以实现判断元素是否存在。先上结果。性能方面:Contains 优于 Exists 优于 Any以下为测试代码public static void Contains_Exists_Any_Test(int num) { List<int> list = new List<int>(); int N = num;..转载 2020-08-05 10:18:11 · 1829 阅读 · 0 评论 -
文件字节流转换
1、读取文件,并转换为字节流FileStream fs = new FileStream(filename,FileMode.Open,FileAccess.Read);byte[] infbytes = new byte[(int)fs.Length];fs.Read(infbytes, 0, infbytes.Length);fs.Close();return infbytes;<br>2、将字节流写入文件FileStream fs = new FileStream("D:\.转载 2020-07-30 09:19:54 · 1321 阅读 · 0 评论 -
net core 上传附件
//获取提交的附件信息,并存入附件表 IFormFileCollection files = Request.Form.Files; if (files != null && files.Count > 0) { var filePath = Path.Combine(Directory.GetCurrentDirectory(), "Files"..原创 2020-07-17 15:27:37 · 573 阅读 · 0 评论 -
通用生成验证码(适用Linux)
public class Captcha { public static string randomCode = "";//随机验证码字符串 private readonly int width = 90;//验证码宽度 private readonly int height = 35;//验证码长度 private readonly int codeLength = 4;//验证码位数 private read.原创 2020-06-29 10:04:26 · 642 阅读 · 0 评论 -
生成随机数验证码
/// <summary> /// 验证码随机数 /// </summary> public static class Captcha { public static string randomCode = "";//随机验证码字符串 /// <summary> /// 生成随机数 /// </summary> /// <param name.转载 2020-06-28 10:53:51 · 518 阅读 · 0 评论 -
C#基础知识之Partial
C# 2.0 可以将类、结构或接口的定义拆分到两个或多个源文件中,在类声明前添加partial关键字即可。例如:下面的PartialTest类class PartialTest{ string Str_FieldTest; int Int_FieldTest; public void DoTest() { Debug.Print("Test"); }}可在不同源文件中写成下面形式:一个文件中写:partialclassPart...转载 2020-06-10 11:21:29 · 375 阅读 · 0 评论