窗体使用事件Form1_KeyDown时,按下键盘上的上下左右按键没反应。 因为Tab、Return、Esc 以及向上键、向下键、向左键和向右键这些是预处理键,直接使用时不行的。 1privatevoid Form1_KeyDown(object sender, KeyEventArgs e)
2 {
3//Keys NowKeys = Keys.Right;4this.NowKeys = e.KeyCode;
5 }像上面这么做时,并不会有反应。这个时候需要使用e.IsInputKey = true;这个属性;这个属性按钮里面有,也就是说按下按钮...
1、Finalize方法(C#中是析构函数,以下称析构函数)是用于释放非托管资源的,而托管资源会由GC自动回收。所以,我们也可以这样来区分托管和非托管资源。所有会由GC自动回收的资源,就是托管的资源,而不能由GC自动回收的资源,就是非托管资源。在我们的类中直接使用非托管资源的情况很少,所以基本上不用我们写析构函数。2、大部分的非托管资源会给系统带来很多负面影响,例如数据库连接不被释放就可能导致连接池中的可用数据库连...
建议99:重写时不应使用子类参数重写时,如果使用了子类参数,可能会偏离设计者的预期目标。比如,存在一个如下继承体系:class Employee{}class Manager : Employee{}现在,类型ManagerSalary中的SetSalary方法重写了Salary中的相同方法,重写的方法采用一个子类参数:class Salary{publicvoid SetSalary(Employee e){Console.WriteLine("职员被设置了薪水。");}}class ManagerSalary : Salary{publicvoid SetSalary(Manager m){C...
1.使用前需将要序列化的类标记为Serializable2.//深拷贝 public static object Clone(object obj){//创建内存流 MemoryStream ms = new MemoryStream();//以二进制格式进行序列化 BinaryFormatter bf = new BinaryFormatter();bf.Serialize(ms, obj);//反序列化当前实例到一个object ms.Seek(0, 0);object res = bf.Deserialize(ms);//关闭内存流 ms.Close();return res;}
原文:http://www.cnblogs.com/guosier/p/5503902.html
建议152:最少,甚至是不要注释以往,我们在代码中不写上几行注释,就会被认为是钟不负责任的态度。现在,这种观点正在改变。试想,如果我们所有的命名全部采用有意义的单词或词组,注释还有多少存在的价值。即便再详细的注释也不能优化糟糕的代码。并且注释往往不会随着代码的重构自动更新,有时候我们可能会在修改代码后忘记更新那段用来表达最初意图的文字了。所以,尽量抛弃注释吧,除非我们觉得只有良好的代码逻辑和命名仍旧不...
public void ShowIndex(DataGridView dgv) { for (int i = 0; i < dgv.Rows.Count; i++) { dgv.Rows[i].HeaderCell.Value = (i+1).ToString(); //HeaderCell获取或设置行的标头单元格 } } 原文:http://www.cnblogs.com/learningrecord/p/5774385.html
目录1. 介绍:描述第三方类库NPOI以及Excel结构2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图、NOPI以及C#代码3. Excel导出:介绍C#如何调用NPOI进行Excel导出,包含:流程图、NOPI以、C#代码以及代码分析4. 源码下载:展示运行图及源码下载 1. 介绍1.1 第三方类库:NPOI说明:NPOI是POI项目的.NET 版本,可用于Excel、Word的读写操作。优点:不用装Office环境。下载地址:http://npoi.codeplex.com/releases 1.2...
随机数的定义为:产生的所有数字毫无关系.在实际应用中很多地方会用到随机数,比如需要生成唯一的订单号.在C#中获取随机数有三种方法: 一.Random 类Random类默认的无参构造函数可以根据当前系统时钟为种子,进行一系列算法得出要求范围内的伪随机数.12Random rd = new Random();int i = rd.Next();这种随机数可以达到一些要求较低的目标,但是如果在高并发的情况下,Random类所取到的系统时钟种子接近甚至完全一样,就很有可能出现重复,这...
概 栈(Stack)代表了一个只有一个出口的后进先出的对象集合。在列表中添加一项,称为推入元素,从列表中移除一项时,称为弹出元素。 Stack<T> 类 public class Stack<T> : IEnumerable<T>, ICollection, IEnumerable属性 Count 获取 Stack 中包含的元素个数方法 Pop 移除并返回在 Stack 的顶部的对象 push 向 Stack 的顶部添加一个对象 peek 返回在 Stack 的顶部的...
在C#中怎么设置一个全局变量,方便我在其他的窗口中可以调用 https://zhidao.baidu.com/question/250714200.htmlC#序列化与反序列化(Serialize,Deserialize)实例详解 http://www.jb51.net/article/67328.htm原文:https://www.cnblogs.com/bycnboy/p/9040913.html
反射就是动态获取程序集中的元数据,直接通过.dll来创建对象,调用成员。Type是反射一个重要的类。通过Type获取类中所有信息,包括方法,属性等。一、Type的简单使用1.通过typeof(类型名)或类实例.GetType()的方式获取某个类型的Type。2.通过GetFields方法可以获取类型中的所有属性。3.Activator.CreateInstance(类型的Type)可以创建类型的实例。4.IsInstanceOfType(),判断是否是某一类型的的实例。5.IsAssignableFrom(),判断是否能...
迭代实现: 11/**2 2 * Definition for a binary tree node.3 3 * public class TreeNode {4 4 * public int val;5 5 * public TreeNode left;6 6 * public TreeNode right;7 7 * public TreeNode(int x) { val = x; }8 8 * }9 9 */1010publicclass Solution {
1111public IList<int> PreorderTraversal(TreeNode root) {
1212 List<int> result=new List<int>();
1313if (root==null)
1414return...
原文地址:MultiThreading Using a Background Worker, C#介绍当开发Windows Forms应用程序时,你会常常注意到:当执行某个耗时的操作,比如处理一个打文件或是从远程服务器请求数据 ,用户界面会进入假死状态。这是由于你的应用程序是运行在单线程下。这个线程负责响应用户界面的操作,同时也负责处理应用程序中所有的事件和方法。因此,耗时的操作会阻塞你的用户界面,直到操作完成。今天,我们将要做的是把这些耗时的操作移到另...
C#——零散学习1//结构体(与C语言相似)struct Position{public float x;public float y; //不一定需要把结构体成员设置为public类型。public float z;//可以有一个结构体函数,操作结构体变量。方法编写格式与普通的一样。调用方式也一样。}//声明和访问Position enemyPosition ;enemyPosition.x = 10; //对象名.结构体成员变量名 //foreach遍历数组foreach(int temp in 数组名){} //参数数组与数组参数修饰符 类型名 ...
AsyncStreamsInCShaper 8.0C# 8.0中支持异步返回枚举类型async Task<IEnumerable<T>>sync Streams这个功能已经发布很久了,在去年的Build 2018 The future of C#就有演示C# 5引入了 Async/Await,用以提高用户界面响应能力和对 Web 资源的访问能力。换句话说,异步方法用于执行不阻塞线程并返回一个标量结果的异步操作。常规示例 要了解问什么需要Async Streams,我们先来看看这样的一个示例,求出5以内的整数的和. static int SumFro...