【c#开发Mongo笔记第八篇】教程文章相关的互联网学习教程文章

c# 生成指定长度的唯一标识方法

public static string GetUniqueIdentifier(int length) { int maxSize = length; char[] chars = new char[62]; string a; a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; chars = a.ToCharArray(); int size = maxSize; byte[] data = new byte[1]; var crypto = new RNGCryptoServiceProvider(); ...

关于C#中获得FileUpload选择的路径问题【图】

比如我选择了一个execl文件。我要获得此文件的地址。很多人用PostedFile.FileName获得到地址 //新文件夹路径 string fileNameUrl = FileUpload_ID.PostedFile.FileName;但奇怪的是我用PostedFile.FileName获得的跟部分人一样是文件名,而不是想要的地址,解决办法通过设置IE如下图: 原文:http://www.cnblogs.com/professional-NET/p/4774705.html

Question-C#中窗体接收上下左右键不工作【代码】【图】

窗体使用事件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;这个属性;这个属性按钮里面有,也就是说按下按钮...

C#中对象的销毁有三种方式Finalize,Dispose,GC。

1、Finalize方法(C#中是析构函数,以下称析构函数)是用于释放非托管资源的,而托管资源会由GC自动回收。所以,我们也可以这样来区分托管和非托管资源。所有会由GC自动回收的资源,就是托管的资源,而不能由GC自动回收的资源,就是非托管资源。在我们的类中直接使用非托管资源的情况很少,所以基本上不用我们写析构函数。2、大部分的非托管资源会给系统带来很多负面影响,例如数据库连接不被释放就可能导致连接池中的可用数据库连...

【转】编写高质量代码改善C#程序的157个建议——建议99:重写时不应使用子类参数【代码】

建议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...

C#.NET对象深拷贝【代码】

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

【转】编写高质量代码改善C#程序的157个建议——建议152:最少,甚至是不要注释

建议152:最少,甚至是不要注释以往,我们在代码中不写上几行注释,就会被认为是钟不负责任的态度。现在,这种观点正在改变。试想,如果我们所有的命名全部采用有意义的单词或词组,注释还有多少存在的价值。即便再详细的注释也不能优化糟糕的代码。并且注释往往不会随着代码的重构自动更新,有时候我们可能会在修改代码后忘记更新那段用来表达最初意图的文字了。所以,尽量抛弃注释吧,除非我们觉得只有良好的代码逻辑和命名仍旧不...

C#WinForm的DataGridView控件显示行号

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

c#使用NPOI进行Excel导入导出,附源码,vs2010【图】

目录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#中获取随机数有三种方法

随机数的定义为:产生的所有数字毫无关系.在实际应用中很多地方会用到随机数,比如需要生成唯一的订单号.在C#中获取随机数有三种方法: 一.Random 类Random类默认的无参构造函数可以根据当前系统时钟为种子,进行一系列算法得出要求范围内的伪随机数.12Random rd = new Random();int i = rd.Next();这种随机数可以达到一些要求较低的目标,但是如果在高并发的情况下,Random类所取到的系统时钟种子接近甚至完全一样,就很有可能出现重复,这...

C#栈的简单介绍【图】

概    栈(Stack)代表了一个只有一个出口的后进先出的对象集合。在列表中添加一项,称为推入元素,从列表中移除一项时,称为弹出元素。    Stack<T> 类    public class Stack<T> : IEnumerable<T>, ICollection, IEnumerable属性    Count  获取 Stack 中包含的元素个数方法    Pop   移除并返回在 Stack 的顶部的对象    push  向 Stack 的顶部添加一个对象    peek  返回在 Stack 的顶部的...

C#汇总链接 搜索收藏

在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

C#反射Reflection【代码】【图】

反射就是动态获取程序集中的元数据,直接通过.dll来创建对象,调用成员。Type是反射一个重要的类。通过Type获取类中所有信息,包括方法,属性等。一、Type的简单使用1.通过typeof(类型名)或类实例.GetType()的方式获取某个类型的Type。2.通过GetFields方法可以获取类型中的所有属性。3.Activator.CreateInstance(类型的Type)可以创建类型的实例。4.IsInstanceOfType(),判断是否是某一类型的的实例。5.IsAssignableFrom(),判断是否能...

二叉树前序遍历C#实现【代码】

迭代实现: 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...

【翻译】C#中使用BackgroundWorker实现多线程【代码】【图】

原文地址:MultiThreading Using a Background Worker, C#介绍当开发Windows Forms应用程序时,你会常常注意到:当执行某个耗时的操作,比如处理一个打文件或是从远程服务器请求数据 ,用户界面会进入假死状态。这是由于你的应用程序是运行在单线程下。这个线程负责响应用户界面的操作,同时也负责处理应用程序中所有的事件和方法。因此,耗时的操作会阻塞你的用户界面,直到操作完成。今天,我们将要做的是把这些耗时的操作移到另...