
C# 编程基础
文章平均质量分 56
richnaly
勤奋、执着
展开
-
C#的两个bug---dataTable的最大行数限制和 Console.write的溢出错误
(一)DataTable的可存储的最大行数16777216,否则会爆出溢出错误(二)Console.write的溢出错误Console.Write 大约写2G字符后就会抛出 " System.ArgumentException: 必须首先完成 Convert() 操作或调用 Encoder.Reset(),然后才能调用 GetBytes() 或 GetByteCount翻译 2013-03-02 14:31:51 · 4584 阅读 · 0 评论 -
Process.WaitForExit 方法
1.是指示 Process 组件无限期地等待关联进程退出。2.WaitForExit 重载用于使当前线程处于等待状态,直到关联的进程终止。 此方法指示 Process 组件无限期地等待该进程和事件处理程序退出。 这可能会导致应用程序停止响应。 例如,如果对有用户界面的进程调用原创 2011-10-10 14:46:54 · 9181 阅读 · 1 评论 -
C#获取CPU编号
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Management;using System.IO;name原创 2011-10-10 15:03:59 · 778 阅读 · 0 评论 -
C# params参数
为了将方法声明为可以接受可变数量参数的方法,我们可以使用params关键字来声明数组,如下所示:public static Int32Add(params Int32[] values){ Int32 sum = 0; for (Int32 x =转载 2011-08-29 11:26:10 · 759 阅读 · 0 评论 -
C# abstract
抽象方法,声明示例:1. public abstract int GetA(int a);注意:抽象方法申明没有方法体,即没有大括号,以分号结束。抽象方法(属性),具有以下特性:1. 抽象方法是隐式的虚方法。(默认是virtual类型,但原创 2011-08-26 17:10:45 · 632 阅读 · 0 评论 -
C#委托
委托是C#中的一种引用类型,类似于C/C++中的函数指针。与函数指针不同的是,委托是面向对象、类型安全的,而且委托可以引用静态方法和实例方法,而函数指针只能引用静态函数。委托主要用于 .NET Framework 中的事件处理程序和回调函数。 一个委托可以看作一个转载 2011-08-24 16:17:59 · 534 阅读 · 0 评论 -
C#基础知识
抽象类(abstract class):一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。接口(interface):只含有共有抽象方法(public abstract method)的类。这些方法必须在转载 2011-08-24 15:01:27 · 475 阅读 · 0 评论 -
C#多线程编程:Interlocked类操作
(一)System.Threading.Interlocked类为多个线程共享的变量提供原子操作。为整型类提供原子类操作经验显示,那些需要在多线程情况下被保护的资源通常是整型值,且这些整型值在多线程下最常见的操作就是递增、递减或相加操作。Interlocked类提供了一个原创 2011-08-19 10:41:39 · 1454 阅读 · 0 评论 -
编写注册表reg文件
假设问题是:“Regedit”已经被锁住了,我们从“开始→运行→Regedit”按确定之后,出现“注册表编辑已经被您的系统管理员停用”。如何才能解除这个限制呢? 因为限制不准用户执行“Regedit”的注册表信息是: HKEY_CURRENT_USER\Software\Micr转载 2011-07-11 16:11:49 · 874 阅读 · 0 评论 -
C# sealed
sealed(C#中的修饰符)当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。 在下面的示例中,类 B 从类 A 继承,但是任何类都不能从类 B 继承。 class A {} sealed class B : A {} 还可以在重写基类中的虚方法或虚属性的方法或属性上使用 sealed 修饰符。这将使您能够允许原创 2011-11-09 15:25:10 · 559 阅读 · 0 评论 -
C#泛型编程
泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。例子代码:class Program { static void Main(string[] args) { int obj = 2; Test test = new Test(obj转载 2012-01-11 16:16:00 · 615 阅读 · 0 评论 -
C# Lambda 表达式
1. Lambda简介一个Lambda Expression (译为Lambda式) 就是一个包含若干表达式和语句的匿名函数。可以被用作创建委托对象或表达式树类型。 所有的Lambda式都使用操作符“=>“,表示“goes to (转变为)”。操作符左边部分是输入参数表,右边部分是表达式或语句块。x => x * x 读成“x转变为x乘x”。La翻译 2012-06-07 15:20:50 · 679 阅读 · 0 评论 -
SyncRoot 属性应用
锁 hashtable 应该锁它的 SyncRoot 属性而不应该锁它的实例, 例如:Hashtable ht = new Hashtable();lock(ht.SyncRoot){...}看了 .Net Framework 文档, 给的例子也是锁 SyncRoot 属性, 说如果锁实例的话不能保证在并发情况下的同步, 我很疑惑, 为什么不能锁 hashtable转载 2013-01-14 15:23:23 · 1212 阅读 · 0 评论 -
C#中不加访问权限修饰符时的默认访问权限说明
1.声明命名空间、类,前面不加限制访问修饰符时,默认访问权限为internal——访问仅限于当前程序集。 2.声明类成员(包括字段(变量)、属性和方法)默认为private)以及结构类型,前面不加限制访问修饰符时,默认访问权限为private——访问仅限于当前类。3.声明枚举类型以及接口类型,前面不加限制访问修饰符时,默认为public且只能为public(就算要把限制访问修饰符写出来,也翻译 2012-12-25 16:11:49 · 5302 阅读 · 0 评论 -
C# APPDOMAIN.CURRENTDOMAIN.BASEDIRECTORY与APPLICATION.STARTUPPATH的区别
// 获取程序的基目录。SYSTEM.APPDOMAIN.CURRENTDOMAIN.BASEDIRECTORY// 获取模块的完整路径。SYSTEM.DIAGNOSTICS.PROCESS.GETCURRENTPROCESS().MAINMODULE.FILENAME// 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。SYSTEM.ENVIRONMENT.翻译 2012-12-11 16:29:24 · 715 阅读 · 0 评论 -
C# 代码页出现虚线
源文件cs页,代码前面空白地方都出现了虚线。快捷键:Ctrl+E+S三个组合键就可以让那些虚线取消或出现。大家也可以试试其他格式的代码页是否如此。翻译 2012-11-06 10:09:49 · 2121 阅读 · 1 评论 -
关于HttpUtility.UrlEncode,HttpUtility.UrlDecode,Server.UrlEncode,Server.UrlDecode
HttpUtility.UrlEncode 方法:对 URL 字符串进行编码,以便实现从 Web 服务器到客户端的可靠的 HTTP 传输。重载列表将字节数组转换为已编码的 URL 字符串,以便实现从 Web 服务器到客户端的可靠的 HTTP 传输。[C#] public static string UrlEncode(byte[]);对 URL 字符串进行编码,翻译 2012-09-18 13:55:22 · 996 阅读 · 0 评论 -
C# Serializable
System.SerializableAttribute串行化是指存储和获取磁盘文件、内存或其他地方中的对象。在串行化时,所有的实例数据都保存到存储介质上,在取消串行化时,对象会被还原,且不能与其原实例区别开来。只需给类添加Serializable属性,就可以实现串行化实例的成员。并行化是串行化的逆过程,数据从存储介质中读取出来,并赋给类的实例变量。例: 1 [Se翻译 2012-08-27 16:53:57 · 737 阅读 · 0 评论 -
C# VS2010发布问题---<compilation debug="true" targetFramework="4.0">
在发布网站的时候,遇到了 这个问题,在网上找了找,解决了自己的问题,但是找的时候很杂,为了方便以后的开发,总结如下:1、 打开控制面板--管理工具--Internet 信息服务(IIS)管理器,选择默认网站,在右边的“管理网站”栏里选择“高级设置…”,将“应用程序池”修改 为“ASP.NET v4.0 ”。 打开 IIS管理器 , 在左边栏双击 您所翻译 2012-09-01 14:16:28 · 2174 阅读 · 0 评论 -
String.Empty,NULL和""的区别
string.Empty不分配存储空间 ""分配一个长度为空的存储空间 所以一般用string.Empty为了以后跨平台,还是用string.empty在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:string s = "";string s2 = string.Empty;if (s == str转载 2012-06-28 15:32:55 · 477 阅读 · 0 评论 -
ConsoleKey 枚举
1.指定控制台上的标准键。2.举例说明: Console.WriteLine("输入\"Q\"键退出"); ConsoleKey key; do {原创 2011-07-04 17:14:20 · 1423 阅读 · 2 评论 -
C# ref 关键字
ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。例如:class RefExample{ static void Method(ref int i) { i = 44; } static void Main()转载 2011-07-01 09:47:00 · 1227 阅读 · 0 评论 -
vs2010新功能
VS2010中针对ASP.NET的23个新功能 1、代码片段(Code Snippets): 代码段是预先开发的代码模板,可以节省我们对有关语法思考的时间。在VS 2005和VS 2008中,已经有建立了很多代码段。不过,这些只适用于隐藏代码(code behind)。在VS 2010中代码片段支持JScript,HTML以及asp.net标记。2、New Profiles: 在以前的dotnet版本中,我们已经看到过不同的开发环境的配置。如VB,C#, Web development转载 2011-03-25 10:09:00 · 2108 阅读 · 2 评论 -
十个必备的.NET开发小工具
<br /><br />· 代码片段编译工具:Snippet Compiler<br />· 正则表达式构建工具:Regulator<br />· 代码生成工具:CodeSmith<br />· 单元测试工具:NUnit<br />· 代码分析与检查工具:FxCop<br />· .NET程序集检查工具:.NET Reflector<br />· 代码文档创建工具:NDoc<br />· 解决方案编译工具:NAnt<br />· 版本切换与转换工具: ASP.NET Version Sw原创 2011-03-18 16:14:00 · 485 阅读 · 0 评论 -
c#值类型和引用类型
在C#中,值类型:整型、布尔型、字符型、实数型、结构型、枚举型。引用类型:类、对象、字符串、数组、接口、委托。区别:1、值类型通常被分配在栈上,它的变量直接包含变量的实例,使用效率比较高。2、引用类型分配在托管堆上,引用类型的变量通常包含一个指向实例的指针,变量通过该指针来引用实例。3、值类型继承自ValueType(注意:而System.ValueType又继承自System.Object);而引用类型继承自System.Object。 4、值类型变量包含其实例数据,每个变量保存了其本身的数据拷贝(副转载 2011-02-22 16:21:00 · 543 阅读 · 0 评论 -
C#连接数据库
<br />1.C#连接连接Access<br />程序代码:<br />-------------------------------------------------------------------------------<br />using System.Data;<br />using System.Data.OleDb;<br />..<br /><br />string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";<br />str转载 2011-03-10 23:34:00 · 737 阅读 · 0 评论 -
C#命名规范
本文主要结构为:(1)C#常用三种命名方法(2)代码规范(3)数据类型规范(4)控件规范(5)参考说明一、 C#常用三种命名方法1) 匈牙利命名法(X)标识符的名字以一个或多个小写字母开头作为前缀;前缀之后的是首字母的一个单词或多个单词组合,该单词要指明变量的用途。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。如:表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为frm原创 2011-03-10 13:47:00 · 791 阅读 · 0 评论 -
dotNET 类型转型的三种做法
(1) 强制转型:(int)变量名称(2) int.Parse(字符串变量名称)(3) Convert.To类型(变量名称)第 (1) 种「强制转型 (casting)」:* 浮点数会做无条件舍去,失去精确度* 可处理 object 转 int,但遇到 object 为 null 时会产生 error* 某些情况下,如 object 转型成 int,有时正常,但有时会无故发生 error,原因不明* 无法处理 string 转 int (程序中常会用到的功能)* 千万不可用来处理 char转载 2011-03-03 16:52:00 · 630 阅读 · 0 评论 -
c# winform 用代码修改DataGridView列头的名字,设置列名,修改列名
dataGridView1.Columns[0].HeaderCell.Value = "编号"; dataGridView1.Columns[1].HeaderCell.Value = "号牌号码"; Columns数组从0开始,0代表第一列 注意:必须在可视界面添加完列名后才可使用转载 2011-02-25 16:23:00 · 30429 阅读 · 2 评论 -
C#反射实例
1 创建用于反射使用的DLL新建一个C#类库项目,拷贝源代码如下,编译生成DLL(假如DLL的文件名是TestReflect.dll)using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Webtest{ public class ReflectTest { public ReflectTest() {转载 2011-02-24 15:06:00 · 849 阅读 · 0 评论 -
C#可访问性级别
<br />使用访问修饰符 public、protected、internal 或 private 可以为成员指定以下声明的可访问性之一。<br />声明的可访问性<br />含义<br />public<br />访问不受限制。<br />protected<br />访问仅限于包含类或从包含类派生的类型。<br />internal<br />访问仅限于当前程序集。<br />protected internal<br />访问仅限于从包含类派生的当前程序集或类型。<br />private<br />原创 2011-03-25 16:37:00 · 687 阅读 · 0 评论 -
显示新闻视频ASPX页面嵌入视频代码
<br />DisplayVideo.aspX开始<br /><%@ Page Language="C#" AutoEventWireup="true" CodeFile="DisplayVideo.aspx.cs" Inherits="ContentManage_DisplayVideo" %><br /><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml转载 2011-05-18 00:00:00 · 3236 阅读 · 1 评论 -
C#重载和重写的区别
<br />C#重载和重写的区别 <br />重载就是在同一个类中,方法名相同,参数列表不同。参数列表不同包括:参数的个数不同,参数类型不同等。<br />重载特征: <br />I.方法名必须相同 <br />II.参数列表必须不相同,与参数列表的顺序无关 <br />III.返回值类型可以不相同<br />用于在给定了参数列表和一组候选函数成员的情况下,选择一个最佳函数成员来实施调用。 <br />public void test(int x,int y){} <br />public void tes原创 2011-05-26 00:06:00 · 980 阅读 · 3 评论 -
C# out关键字
out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。例如:class OutExample{ static void Method(out int i) { i = 44; } static voi转载 2011-06-30 10:54:00 · 953 阅读 · 0 评论 -
从客户端中检测到有潜在危险的 Request.Form 值的解决方法
错误信息: 中文信息: 从客户端(FreeTextBox1=" aa...")中检测到有潜在危险的 Request.Form 值。 英文信息: A potentially dangerous Request.Form value was detected from the client (FreeTextBox1="aa...") 解决方法: 这是.net转载 2011-06-29 11:08:00 · 2938 阅读 · 0 评论 -
Int32.TryParse (String, Int32)
<br />1.语法<br /><br />将数字的字符串表示形式转换为它的等效 32 位有符号整数。一个指示操作是否成功的返回值。<br />publicstaticbool TryParse ( string s, outint result<br /> 2.参数<br /><br />3.返回值s<br />包含要转换的数字的字符串。result<br />当此方法返回时,如果转换成功,则包含与 s 所包含的数字等效的 32 位有符号整数值;如果转换失败,则包含零。如果 s 参数为 空引用(在原创 2011-05-05 14:26:00 · 1163 阅读 · 0 评论 -
C# 调度器开启
一.调度队列using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace Queue{ internal class ReceiveDespatch { //单原创 2011-06-21 14:25:00 · 1358 阅读 · 0 评论 -
C#集合类Queue
队列(Queue)在程序设计中扮演着重要的角色,因为它可以模拟队列的数据操作。例如,排队买票就是一个队列操作,新来的人排在后面,先来的人排在前面,并且买票请求先被处理。为了模拟队列的操作,Queue在ArrayList的基础上加入了以下限制:· 元素采用先入先出机制(FIFO,First In First Out),即先进入队列的元素必须先离开队列。最先进入的元素称为队转载 2011-06-14 16:05:00 · 4028 阅读 · 0 评论 -
C#中class与struct的区别
<br /> <br />一.类与结构的示例比较:<br /> 结构示例:<br /> public struct Person { string Name; int height; int weight; public bool overWeight() { //implement something return true; }原创 2011-04-14 13:58:00 · 535 阅读 · 0 评论 -
c# 保存错误日志
<br /> public static class Log { private static object lockerForError = new object(); //错误日志锁 /// <summary> /// 保存错误日志 /// </summary> /// <param name="source"></param> /// <param name="type">原创 2011-05-31 13:59:00 · 2486 阅读 · 0 评论