C#
文章平均质量分 58
阳光Cherry梦
这个作者很懒,什么都没留下…
展开
-
【水晶报表内功心法】--PUSH模式样板招式
索引 .【水晶报表内功心法】--序言.【水晶报表内功心法】--推拉之间.【水晶报表内功心法】--PULL模式样板招式============================================================ 前篇讲解了PULL模式下的操作方法,比较简单。本文进一步详细讲解一下PUSH模式下的样板操作。仍以Web为例新建一个 A转载 2015-04-28 12:12:12 · 1053 阅读 · 0 评论 -
怎么把一个硬件的驱动程序打包到自己的应用程序的安装程序里
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2015-06-26 18:08:23 · 4074 阅读 · 1 评论 -
VS.NET2010水晶报表安装部署[VS2010]
欢迎C#高手加盟QQ群:9340166水晶报表VS2010版IDE安装标准版SAP Crystal Reports, version for Visual Studio 2010 - Standard:下载地址: http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0_1.exe 下载安装转载 2015-04-21 16:12:19 · 1806 阅读 · 0 评论 -
c#调用R语言
介绍本页面涉及R.NET1.5.13。 1.5.13版本在功能上等同于1.5.12,但可作为一个包在NuGet.org上获得。R.NET使.NET框架与R统计语言在同一进程进行互操作。 R.NET需要.NET Framework 4的并有R环境中安装的本地的DLL。您可以使用R.NET用在.NET的任何语言(它已被用于至少C#,F#,Vb.NET,IronPython中)。你使用这转载 2016-03-12 21:45:13 · 3339 阅读 · 0 评论 -
部署任务和演练
本节内容主题说明如何:在 Windows Installer 部署中安装系统必备组件描述如何启用和禁用系统必备组件的安装,以及如何指定系统必备组件的下载位置。如何:创建或添加部署项目描述如何创建一个新的部署项目或将现有的部署项目添加到解决方案中。转载 2015-06-25 17:11:17 · 722 阅读 · 0 评论 -
将C#程序与调用的dll对应的C++源码联调的一种方法
本方法对满足以下条件的程序有效(放宽版本条件应该也可以,怕误导,所以仅总结说明我使用的条件)1、有生成dll的源代码,且源代码为用VS编写的C++2、dll放在C#工程的Debug文件夹下,并在C#程序中调用了dll3、要将随dll一同生成的pdb文件一并拷贝到C#工程的Debug文件夹下。这里有必要解释一下pdb文件的重要性 在由C或C++编写的源码生成dll时会同时生成原创 2015-07-03 12:57:33 · 3657 阅读 · 0 评论 -
如何获得.net控件的windows句柄
有一个简单的获得控件的句柄的窍门。你将窗体设置为鼠标可捕获,那么你的窗口句柄可以通过使用Windows API捕获。 这个想法在以下的GetHWnd函数中实现: class WinAPI{ [DllImport("coredll.dll")] private static extern IntPtr SetCapture(IntPtr hWnd); [DllImp转载 2012-10-20 11:38:23 · 751 阅读 · 0 评论 -
多练习多练习~
http://www.csharpskin.net/List.aspx?TypeId=8&page=1原创 2012-10-22 19:56:03 · 650 阅读 · 0 评论 -
6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱
引言 本篇文章主要介绍.NET中6个重要的概念:栈,堆,值类型,引用类型,装箱,拆箱。文章开始介绍当你声明一个变量时,编译器内部发生了什么,然后介绍两个重要的概念:栈和堆;最后介绍值类型和引用类型,并说明一些有关它们的重要原理。 最后通过一个简单的示例代码说明装箱拆箱带来的性能损耗。 声明变量的内部机制 在.NET程序中,当你声明一个变量,将在内存中分配一块内存。这块转载 2012-11-02 11:35:02 · 678 阅读 · 0 评论 -
浅析C#中object sender与EventArgs e
一、了解C#中的预定义事件处理机制 在写代码前我们先来熟悉.net框架中和事件有关的类和委托,了解C#中预定义事件的处理。 EventArgs是包含事件数据的类的基类,用于传递事件的细节。 EventHandler是一个委托声明如下 public delegate void EventHandler( objectsender, E转载 2012-10-20 10:11:30 · 1650 阅读 · 0 评论 -
C#中的static关键字
静态分配的,有两种情况: 1. 用在类里的属性、方法前面,这样的静态属性与方法不需要创建实例就能访问, 通过类名或对象名都能访问它,静态属性、方法只有“一份”:即如果一个类新建有N个 对象,这N 个对象只有同一个静态属性与方法;2. 方法内部的静态变量: 方法内部的静态变量,执行完静态变量值不消失,再次执行此对象的方法时,值仍存在, 它不是在栈中分配的,是在静态区分析的, 这是与局部变量最转载 2012-11-02 10:04:56 · 612 阅读 · 0 评论 -
C#中被委托的方法必须是静态的吗?
静态方法与实例方法的区别:静态方法都是通过关键字static来定义的,静态方法不需要实例这个对象就可以通过类名来访问这个对象。在静态方法中不能直接访问类中的非静态成员。而用实例方法则需要通过具体的实例对象来调用,并且可以访问实例对象中的任何成员。如果用委托绑定实例方法的话需要用实例对象来访问,所以我们在绑定实例方法到委托的时候必须同时让委托得到实例对象的信息,这样才能在委托被回调的时候成功转载 2012-11-02 11:03:36 · 9143 阅读 · 0 评论 -
C#中时间和委托的例子
C#中事件和委托的例子[日期:2010-11-22] 来源:25175 作者:tongbo 阅读:156 次 [字体:大中小]powered by 25175.net public partial class Form1 : Form{public Form1(){InitializeComponent();}priva转载 2012-11-04 10:45:13 · 526 阅读 · 0 评论 -
C#委托与事件*
在C# 中,委托类似于C++中的回调机制,声明一个委托类型,可以分别采用实例方法和静态方法实例化了委托,所不同的是采用静态方法实例化的委托,它的Target属性为null;而用实例方法实例化的委托,它的Target属性为该实例。但是这里要注意,如果你用Console.WriterLine(delegateObj.Target)输出该实例,结果是该实例的类型,而不是该实例的名字。转载 2012-11-03 14:52:18 · 421 阅读 · 0 评论 -
委托
回调(callback)函数是Windows编程的一个重要部分。如果您具备C或C++编程背景,就曾在许多Windows API中使用过回调。VB添加了AddressOf关键字后,开发人员就可以利用以前一度受到限制的API了。回调函数实际上是方法调用的指针,也称为函数指针,是一个非常强大的编程特性。.NET以委托的形式实现了函数指针的概念。它们的特殊之处是,与C函数指针不同,.NET委托是类型安全的转载 2012-11-03 16:58:11 · 296 阅读 · 0 评论 -
值类型vs引用类型内存机制
那么.NET的内存分配机制如何呢?数据在内存中的分配位置,取决于该变量的数据类型。由上可知,值类型通常分配在线程的堆栈上,而引用类型通常分配在托管堆上,由GC来控制其回收。例如,现在有MyStruct和MyClass分别代表一个结构体和一个类,如下:using System; public class Test { static void Main() { //定义值类型和引用类型转载 2012-10-28 10:20:12 · 676 阅读 · 0 评论 -
用C#获取浏览文件夹对话框
摘要: C#里面有选择文件的对话框控件,却没有选择文件夹的对话框控件,我们可以用C#的FolderNameEditor类的子类FolderBrowser类来实现获取浏览文件夹对话框的功能。 下面来看看具体是怎么实现的。 首先新建一个winform的项 ... C#里面有选择文件的对话框控件,却没有选择文件夹的对话框控件,我们可以用C#的FolderNameE转载 2012-11-08 13:31:09 · 660 阅读 · 0 评论 -
C#打包应用程序(安装程序)
声明:软件平台:VisualStudio2005中文版(在03下操作雷同).1:新建安装部署项目打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图)2:安装向导关闭后打开安装向导,点击下一步,或者直接点击完成.如下图:3:开始制作安装向导完成后即可进入项目文件夹:转载 2012-11-08 16:44:59 · 515 阅读 · 0 评论 -
C#和VB2005初学者如何使用FileSystemInfo类
Class in C# and VB.NET for beginnersFileSystemInfo ClassOne of the rich experiences in working with .NET is a huge collection of Base Class Libraries. The .NET Framework class library is a lib转载 2012-11-09 08:49:34 · 848 阅读 · 0 评论 -
设计多线程应用程序
一个多线程程序有多于两个线程,它可以通过并发实现重要性能提升,不管是否并发执行线程。线程并发执行意味着多于两个线程在同一时间执行。并发是指>=2个线程在>=2个处理器中同步执行。在这部分,我们将探讨设计多线程应用时的考量和问题。在你开发应用程序之前,你应该问问你自己以下问题: 1. 把程序分成小块来运行在不同线程上是否可行? 2. 如果可以将一个线程分成小块,那么该如何进行拆分呢?转载 2012-11-26 10:18:22 · 547 阅读 · 0 评论 -
调用不是本线程创建的windows控件会报错
应该使用控件的InvokeRequired属性来判断是否需要Invoke,如果是则使用控件Invoke的方法来执行一个委托.类似如下: public partial class Form1 : Form { private delegate void myDel(); public Form1() {转载 2012-11-26 11:33:13 · 485 阅读 · 0 评论 -
c#实现多线程代码例子
相信大家都有用过网际快车等下载资源的经历,它里面是可以设置线程数的(近年版本默认是10,曾经默认是5)。它会将文件分成与线程数相同的部分,然后每个线程下载自己的那一部分,这样下载效率就有可能提高。相信大家都有加多线程数,提升下载效率的经历。但细心的用户会发现,在带宽一定的情况下,并不是线程越多,速度越快,而是在某一点达到峰值。在C#中用多线程并不难实现。它有一个命名空间:System.Thre转载 2012-11-26 11:11:42 · 618 阅读 · 0 评论 -
FileInfo与DirectoryInfo
前篇写了 File类与Directory类,今天写 他的 实例类,嘿嘿先上张图: 附上 静态类与实例类的区别:Fileinfo类与DirectoryInfo类//文件File类是静态类,而FileInfo没有静态方法的。File类的静态方法在调用时要执行安全检查。对于操作单一的文件,用静态方法快,但是如果对对象多种操作,用实例化方法,静态方法会每次都寻找文件,而转载 2012-11-11 12:31:32 · 666 阅读 · 0 评论 -
C#目录与文件总结
注:C#的文件操作都是包含在System.Io的命名空间里面。一、 Path类:对一个路径做相应操作,包括文件路径,目录路径。通常会用到Path这个类。1.更改路径字符串的扩展名Public static string ChangeExtension(string path,string extension)参数:path(String):要修改的路径信息.转载 2012-11-11 12:32:58 · 607 阅读 · 0 评论 -
.Net线程问题解答
怎样创建一个线程 受托管的线程与 Windows线程 前台线程与后台线程 名为BeginXXX和EndXXX的方法是做什么用的 异步和多线程有什么关联 WinForm多线程编程篇我的多线程WinForm程序老是抛出InvalidOperationException ,怎么解决?Invoke,BeginInvoke干什么用的,内部是怎么实现的每个线程都有消息队列吗? 为什转载 2012-11-16 21:05:43 · 531 阅读 · 0 评论 -
多线程编程笔记(二)
线程池用线程池编写多线程应用一般步骤:1、编写工作任务:将所有的工作任务泛放在一个符合WaitCallback接口的函数中 public static void MyAsyncOperation(object state) { //... //要完成的工作任务 } 一般通过state传入一个同步对象2、往线程池中添加工作项 ThreadPoo转载 2012-11-16 19:46:59 · 436 阅读 · 0 评论 -
多线程编程笔记(三)
互斥1、Monitor.Enter和Monitor.ExitMonitor 类通过向单个线程授予对象锁来控制对对象的访问。对象锁提供限制访问代码块(通常称为临界区)的能力。当一个线程拥有对象的锁时,其他任何线程都不能获取该锁。还可以使用 Monitor 来确保不会允许其他任何线程访问正在由锁的所有者执行的应用程序代码节,除非另一个线程正在使用其他的锁定对象执行该代码。注意:使用 Mon转载 2012-11-16 19:48:15 · 428 阅读 · 0 评论 -
c#中如何跨线程调用windows窗体控件?
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) {转载 2012-12-01 09:11:40 · 873 阅读 · 0 评论 -
.NET多线程编程(2):System.Threading.Thread类
在接下来的这篇文章中,我将向大家介绍.NET中的线程API,怎么样用C#创建线程,启动和停止线程,设置优先级和状态. 在.NET中编写的程序将被自动的分配一个线程.让我们来看看用C#编程语言创建线程并且继续学习线程的知识。我们都知道.NET的运行时环境的主线程由Main ()方法来启动应用程序,而且.NET的编译语言有自动的垃圾收集功能,这个垃圾收集发生在另外一个线程里面,所有的这些都是转载 2012-11-16 19:30:29 · 723 阅读 · 0 评论 -
.NET多线程编程(3):线程同步
随着对多线程学习的深入,你可能觉得需要了解一些有关线程共享资源的问题. .NET framework提供了很多的类和数据类型来控制对共享资源的访问。考虑一种我们经常遇到的情况:有一些全局变量和共享的类变量,我们需要从不同的线程来更新它们,可以通过使用System.Threading.Interlocked类完成这样的任务,它提供了原子的,非模块化的整数更新操作。还有你可以使用System.转载 2012-11-16 19:40:04 · 470 阅读 · 0 评论 -
.NET多线程编程(4):线程池和异步编程
如果你仔细阅读了我前面的三篇文章,我相信你对用.NET Framework提供的System.Threading.Thread类和一些线程同步的类基本的线程知识和多线程编程知识很了解。我们将在这里进一步讨论一些.NET类,以及他们在多线程编程中扮演的角色和怎么编程。它们是:System.Threading.ThreadPool 类System.Threading.Timer 类如果线程转载 2012-11-16 19:43:14 · 688 阅读 · 0 评论 -
多线程编程笔记(五)
]处理周期事件1、System.WinForms.TimerTimer的Tick事件代码:Interlocked.Increment(ref _count);2、ThreadPoolA.生成WaitOrTimerCallback事例B.生成一个同步对象C.添加到线程池例1:/*RegisterWaitForSingleObject下面的示例演转载 2012-11-16 19:51:07 · 479 阅读 · 0 评论 -
.NET多线程编程(1):多任务和多线程
在.NET多线程编程这个系列我们讲一起来探讨多线程编程的各个方面。首先我将在本篇文章的开始向大家介绍多线程的有关概念以及多线程编程的基础知识;在接下来的文章中,我将逐一讲述。NET平台上多线程编程的知识,诸如System.Threading命名空间的重要类以及方法,并就一些例子程序来作说明。 引言 早期的计算硬件十分复杂,但是操作系统执行的功能确十分的简单。那个时候的操作系统在任一转载 2012-11-16 19:27:21 · 1055 阅读 · 0 评论 -
线程中的参数传递
使用类、类的方法或类的属性都可以向线程传递参数:public class UrlDownloader{ string url; public UrlDownloader (string url) { this.url = url; } public void Download() { W转载 2012-11-16 19:34:30 · 492 阅读 · 0 评论 -
线程内部是如何进行的?
来源:csdn 作者: 看一下以下两个例子的运行结果://TestThread.csusing System;using System.Threading;public class Test{ static int count=0; static void Main() { ThreadS转载 2012-11-16 19:35:59 · 444 阅读 · 0 评论 -
多线程编程笔记(一)
操作线程1、操作实例using System;using System.Threading;namespace AppThreadDemo{ class App { static public void threadMethod() { Console.WriteLine("\n执行ThreadMethod的线程的代码为:{0}",Thread.C转载 2012-11-16 19:45:05 · 587 阅读 · 0 评论 -
C#使用线程Monitor.Enter()和Monitor.Exit()
2012-02-03 17:03 by DanielWise,Monitor 方法是静态的,不需要生成Monitor 类的实例就可以直接调用它们。在.NET Framework 中,每个对象都有一个与之关联的锁,对象可以得到并释放它以便于在任意时间只有一个线程可以访问对象实例变量和方法。类似的,.NET Framework 中的每个对象都提供一个允许自己进入等待状态的机制。与锁的机制类转载 2012-11-21 16:28:18 · 14811 阅读 · 0 评论 -
死锁,生产者与消费者
// DeadLockSample.cs// 分析一下为什么会发生死锁?using System;using System.Threading;public class Test{ static readonly object firstLock = new object(); static readonly object secondLock = ne转载 2012-11-16 19:37:53 · 830 阅读 · 0 评论 -
线程间操作无效,从不是创建控件的线程访问它
访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。.NET Framework 有助于在以非线程安全方式访问控件时检测到这一问题。在调试器中运行应用程序时,如果创建某控件的线程之外的其他线程试图调用该控件,则调试器转载 2012-11-22 20:20:10 · 642 阅读 · 0 评论 -
逐步讲解用C#实现俄罗斯方块之核心代码[上
从分析到实现讲解俄罗斯方块的做法俄罗斯方块在.NET下的制作,我写的只是一些拙见,望高手不要板砖,也请高手不惜赐教!首先我们要分析俄罗斯方块的原理1.由移动的方块和不能动的方块组成2.一行排满消除3.能产生多种方块---首先我们来分析方块前面说了方块由两部分组成一种是移动下落的一种是固定的,我们逐个来分解,移动的方块一般由4个方块组成[我们这里只讨论保准版]我们假设转载 2012-12-10 19:10:26 · 923 阅读 · 0 评论