C#
文章平均质量分 57
xiaoyusmile
这个作者很懒,什么都没留下…
展开
-
如何用程序实现远程桌面连接(C#)
最近,因项目需求,要用C#实现一个远程桌面连接程序,简单地说,就是根据给定的机器名、用户、密码等连接到指定的主机。 为解决这个问题,本人在网上查了很多资料。不知是自己的检索能力有问题,还是怎么回事,竟没有发现一篇中文文章说这个事。很多人遇到了同样的问题,提出种种疑问。有些人解决了问题,但没有把他们的解决办法写出来。 通过参考很多网上的资料(大多是英文的),这个问题终于解原创 2008-07-09 16:47:00 · 8265 阅读 · 3 评论 -
C#中using关键字的作用及用法
using的用途和使用技巧. 1、 引用命名空间 2、 为命名空间或类型创建别名 3、 使用using语句 1、 引用命名空间,这样可以在程序中引用命名空间的类型而不必指定详细的命名空间. a) 比如在程序中常用的using System.Text; b) 引用命名空间,并不等于编转载 2014-08-20 17:53:04 · 577 阅读 · 0 评论 -
.NET学习笔记(15)使用索引器
使用索引器使用索引器,以数组风格访问对象声明get accessor控制索引器读取访问声明set accessor控制索引器写入访问在接口中声明索引器在从接口继承的结构和类中实现索引器引言类(结构)成员可以有很多,当用不同类型的单个私有字段时,用属性解决封装与隐藏问题——很好。但当类中的字段是一个数组时,会出现问题在程序中写如下语句较另人费解 bits&转载 2014-08-20 17:45:08 · 646 阅读 · 0 评论 -
跟小静读CLR via C#(11)-无参属性、索引器
提起属性,我们都不陌生。它用起来就像访问public数据成员一样,但实际上是调用了内部定义的相应方法。通过使用属性保持了较好的数据封装,而且访问很方便,接下来我们共同复习以下CLR允许定义的两种属性:无参属性和有参属性(索引器)。一、 无参属性1. 定义属性无参属性就是我们最常见的属性方式,在赋值时可以加入一定的逻辑判断。属性的定义其实不复杂,先看个直观的例子:转载 2014-08-20 17:45:39 · 778 阅读 · 1 评论 -
何时使用泛型
使用泛型需要考虑的几个问题:1. 您所使用的类型是否包含或操作未指定的数据类型(如集合类型)?如果是这样,如果是这样,创建泛型类型将能提供更多的好处。如果您的类型只操作单一的指定类型,那么就没有必要去创建一个泛型类。2. 如果您的类型将操作值类型,那么就会产生装箱和拆箱操作,就应该考虑使用泛型来防止装箱和拆箱操作。3. 泛型的强类型检查有助于快速查找错误(也就是编译期而非运原创 2014-08-20 17:47:17 · 2628 阅读 · 0 评论 -
override和new的区别?
先看下面这段代码的输出: class ClassA { public virtual void WriteString() { Console.WriteLine("ClassA类virtual WriteString"); } public void Write()转载 2014-08-20 17:49:57 · 613 阅读 · 0 评论 -
override和new的区别
override1. override是派生类用来重写基类中方法的;2. override不能重写非虚方法和静态方法;3. override只能重写用virtual、abstract、override修饰的方法;4. 不能使用修饰符 new、static、virtual 或 abstract 来修改 override 方法。new1. new是派生类原创 2014-08-20 17:52:27 · 594 阅读 · 0 评论 -
C# 中@符号在字符串中的作用
@符号是特殊而又实用的C#符号。 比如它在string中的应用。 1字符@表示,其后的字符串是个“逐字字符串”(verbatim string)。 // 这个说法来自C# Primer 中文版(Stanley B. Lippman, 侯捷/陈硕合译) 2对于逐字字符串字面变量(verbatim string literal )转载 2014-08-20 17:53:45 · 867 阅读 · 0 评论 -
是Attribute,还是Property?
是Attribute,还是Property?有时是个麻烦。 Attribute和Property都可以翻译成“属性”,有的地方用Attribute表示“属性”,有的地方又在用Property,初学者常常在这两个单词间“迷失”,甚至认为二者没有区别,是一样的。可是Attribute不等于Property。二者之间到底有何区别? 我们从OOA/OOD(Object Or转载 2014-08-20 17:52:33 · 621 阅读 · 0 评论 -
Effective C# 学习笔记(一):Implement the Standard Dispose Pattern
1. The standard dispose idiom frees your unmanaged resources using the IDisposable interface when clients remember, and it uses the finalizer defensively when clients forget. It works with the Garbage原创 2014-08-20 17:55:50 · 591 阅读 · 0 评论 -
接口和抽象类的区别
区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。 区别二,抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;而对于接口来说,其中所定义的方法都不能给出实现部分。抽象类中的abstract方法原创 2014-08-20 17:48:35 · 358 阅读 · 0 评论 -
C#调用存储过程返回值
因为一般都用T-SQL来执行数据库操作,偶尔现在转到用存储过程,竟然写不来调用过程的返回值了,查了很多资料,都不详细,或者没到点上,也许是我比较笨,呵呵。C# 源代码 1 /// 2 /// 校验用户 3 /// 4 /// 用户信息 5 /// 6 publi转载 2014-08-20 17:44:30 · 493 阅读 · 0 评论 -
什么是泛型
什么是泛型(C#)所谓泛型是指将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。一种类型占位符,或称之为类型参数。我们知道一个方法中,一个变量的值可以作为参数,但其实这个变量的类型本身也可以作为参数。泛型允许我们在调用的时候再指定这个类型参数是什么。在.net中,泛型能够给我们带来的两个明显好处是——类型安全和减少装箱、拆箱。 例如:通常一个方法或过程的签转载 2014-08-20 17:44:29 · 488 阅读 · 0 评论 -
.NET垃圾回收的机制解释
首先,对象分为值类型和引用类型,值类型在用完后是由操作系统自动回收的,引用类型由垃圾回收器回收,所以提到垃圾回收肯定是对引用类型来说的。垃圾回收机制是为了解决内存泄漏问题,即对象在用完后,其占用的内存没有被释放,使一个无用的对象不必要的占用了内存,导致不正常的内存减少甚至耗尽。以前有两种内存管理技术,一种COM开发人员熟悉的引用计数技术,一种C++开发人员熟悉的Delete语句,COM开发转载 2014-08-20 17:55:09 · 787 阅读 · 0 评论 -
实例讲解override和new的区别
一、override:Override关键字主要是提供派生类对基类方法的新实现。1、不可以用于重写非虚方法和静态方法2、与其配套使用的关键字是Virtual、abstract、Override。3、不能使用修饰符 new、static、virtual 或 abstract 来修改 override 方法。 二、new:new关键字可以在派生类中隐藏基类的转载 2014-08-20 17:51:02 · 556 阅读 · 0 评论 -
在C#中调用EXE文件
1. 如果exe文件的返回值是int类型,标识操作执行的结果是否成功,例如:class Program { static int Main(string[] args) { return args.Length; } }则在调用exe文件时,可以用如下方法:Process myProcess原创 2009-03-04 16:56:00 · 1380 阅读 · 0 评论 -
C#中的delegate
在c#中,event与delegate是两个非常重要的概念。因为在Windows应用程序中,对事件的使用非常频繁,而事件的实现依赖于delegate。下面是对网上一些比较好的关于delegage的资料的整理,以及自己的一些想法。委托概述委托是一种安全地封装方法的类型,它与 C 和 C++ 中的函数指针类似。与 C 中的函数指针不同,委托是面向对象的、类型安全的和保险的。委托的类型由委托原创 2009-06-02 12:26:00 · 17649 阅读 · 0 评论 -
C#中的Event
在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订户”。 事件概述 事件具有以下特点: l 发行者确定何时引发事件,订户确定执行何种操作来响应该事件。l 一个事件可以有多个订户。一个订户可处理来自多个发行者的多个事件。l 没有订户的事件永远不会被调用。l原创 2009-06-03 15:10:00 · 7884 阅读 · 1 评论 -
可执行文件相关配置文件的读取、写入
通过.NetFramework提供的ConfigurationManager类,来实现对可执行文件相应配置文件的维护。原创 2010-09-03 10:02:00 · 965 阅读 · 0 评论 -
根据机器名称、IP检查是否为本机
获取当前机器的机器名、IP原创 2010-09-03 09:56:00 · 626 阅读 · 0 评论 -
C#调用Delphi写的DLL
<br /> Delphi动态链接库中函数定义为:<br />function Get(s:PChar):Boolean;stdcall;<br /> <br />在C#中可以这样调用:<br />[DllImport(@"D:/Delphi/Test.dll", EntryPoint = "Get", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]private static extern bool Get原创 2011-01-19 15:14:00 · 2772 阅读 · 2 评论 -
通过代码修改本地安全策略
因工作需要,研究了如何通过代码来修改计算机的本地安全策略。 这里主要介绍如何修改本地安全策略中的“安全选项”、“用户权利指派”。安全选项 Windows自带的Secedit.exe 命令行工具可以配置系统的安全模板,达到修改计算机安全配置的目的。 修改计算机的原创 2011-07-11 14:56:42 · 9298 阅读 · 0 评论 -
C#多态小结——面向对象编程的三大机制之二
C#的多态性:我的理解是:同一个操作,作用于不同的对象时,会有不同的结果,即同一个方法根据需要,作用于不同的对象时,会有不同的实现。通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态。C#的多态包括:接口多态,继承多态。其中继承多态又包括通过虚拟方法实现的多态和通过抽象方法实现的多态性。例如:基类动物都有吃的方法,但是不同的动物吃的东西就会不一样,例转载 2014-08-18 17:54:56 · 599 阅读 · 0 评论 -
多态的作用
我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了――代码重用。 那么,多态的作用是什么呢?多态是为了实现另一个目的――接口重用!而且现实往往是,要有效重用代码很难,而真正最具有价值的重用是接口重用,因为“接口是公司最有价值的资源。设计接口比用一堆类来实现这个接口更费时间。而且接口需要耗费更昂贵的人力的时间。” 其实,继承的转载 2014-08-18 17:54:30 · 788 阅读 · 0 评论 -
C#编写NotifyIcon 将窗口最小化到托盘
1.设置窗体属性showinTask=false2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。3.添加窗体最小化事件(首先需要添加事件引用):// this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged);//上面一行是主窗体Init转载 2014-08-18 17:51:59 · 823 阅读 · 0 评论 -
override和overload
override(覆盖)和overload(重载)是两个比较容易混淆的概念。 override(覆盖)是指子类重新定义父类的虚函数的做法。 而overload(重载),是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。 其实,重载的概念并不属于“面向对象编程”。重载的实现是:编译器根据函数不同的参数表,对同名函数的原创 2014-08-18 17:55:39 · 412 阅读 · 0 评论 -
将窗口最小化到托盘内
托盘显示的图标实际上就是一个NotifyIcon控件,为窗口添加一个NotifyIcon控件实例,然后设置其Visiable属性就可以控制是否显示在系统托盘中了。现在做一个模拟foobar的窗口:最小化时到托盘,当点击托盘的时候,显示在任务栏。1、在VS2005.NET中,新建一个Windows Application项目,名字为“最小化到托盘”;2、在Form1的设计界面中,在工转载 2014-08-18 17:49:09 · 1165 阅读 · 0 评论