
C#基础语言学习
猴头
我要记录每一点进步
展开
-
【C#基础语言学习】:const,readonly 常量与只读的区别
Const是常量Const在编译时会被编译为静态成员,它确定于编译时期,属类型级,通过类型来访问。现在通过以下几种情况来说明const常量:(1)初始化public const string _name;这种方式是错误的,因为它的值须在编译时期确定,所以在声明要初始化。(2)构造器中初始化public const string _name= "宋江";publi转载 2012-08-05 16:57:09 · 1165 阅读 · 0 评论 -
使用:Comparison委托,为list等集合做自定义排序。
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Comparison委托进行排序{ class Program { static void Main(string[] args) {原创 2012-07-24 18:51:36 · 3723 阅读 · 0 评论 -
Predicate查找字典中的数据
static void Main(string[] args) { List TempList = new List(); TempList.Add("TempOne"); TempList.Add("TempTwo"); TempList.Add("TempThree");原创 2012-07-22 01:00:16 · 938 阅读 · 0 评论 -
整理贴,NET中的闭包《续》:闭包造成的意外。
闭包是将一些执行封装,将它像对象一样传递,在传递时,执行依然能够访问到原上下文。访问原来上下文,是闭包的重要特征 代码:static void Main(string[] args){List ls = new List();for (int i = 0; i < 10; i++){ls.Add(() => Console.WriteLine(i));转载 2012-07-29 19:56:08 · 931 阅读 · 0 评论 -
整理贴,NET中的闭包。
闭包是将一些执行语句的封装,可以将封装的结果像对象一样传递,在传递时,这个封装依然能够访问到原上下文。 形成闭包有一些值得总结的非必要条件:1、嵌套定义的函数。2、匿名函数。3、将函数作为参数或者返回值。4、在.NET中,可以通过匿名委托形成闭包:函数可以作为参数传递,也可以作为返回值返回,或者作为函数变量。而在.NET中,这都可以通过委托来实现。这些是实现闭包的转载 2012-07-29 19:14:34 · 1382 阅读 · 0 评论 -
【整理pcnetman888帖子】奇怪的局部变量:讨论一下C#中的闭包【关于闭包再续】
在【pcnetman888】于优快云-优快云社区-.NET技术-C# 版 时间: 2009-08-21 13:40:51发的一个帖子中涉及到关于闭包的知识点,我这几天(三年后)才看到,觉的帖子中有许多回复很有价值,并且在他本人的博客中没有看到关于帖子内容以及回复的整理结果,于是我就在没有经过他的同意的情况下私自整理如下(希望pcnetman888本人不要见怪)。 帖子原址:奇怪的局转载 2012-07-30 20:02:16 · 1232 阅读 · 0 评论 -
【基础语言学习】C#中的可空类型运算(Nullable<T>)------T?
几天在看公司的代码的时候,发现对于一些字符串的运算没有判断是否为null,就直接参与了运算,于是就引起了我的兴趣,自己写了个代码作为测试,代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Null值相加{ class Program原创 2012-07-24 13:18:44 · 4685 阅读 · 0 评论 -
获取字符串的像素长度
1、 使用g.MeasureString()获得使用MeasureString测量出来的字符宽度,总是比实际宽度大一些,而且随着字符的长度增大,貌似实际宽度和测量宽度的差距也越来越大了。查了一下MSDN,找到了下面这个理由:MeasureString 方法旨在与个别字符串一起使用,它在字符串前后包括少量额外的空格供突出的标志符号使用。 string str;转载 2012-07-31 14:15:10 · 6044 阅读 · 0 评论 -
对于集合中的扩展方法Select和Where的练习
代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Lamda_Test{ class Program { static void Main(string[] args) {原创 2012-07-27 15:59:21 · 15764 阅读 · 1 评论 -
List去除重复项。
for (int i = 0; i < List.Count; i++) { for (int j = i + 1; j < List.Count; j++) { if (List[i]==List[j]) { List.Remo原创 2012-10-26 18:02:52 · 1992 阅读 · 0 评论 -
2.0 不支持扩展方法,做个记录
public static bool KVPair_Equal(this KeyValuePair objOne, KeyValuePair objTwo) { if (objOne.Key.Equals(objTwo.Key) && objOne.Value.Equals(objTwo.Value)) {原创 2013-04-25 17:52:57 · 1000 阅读 · 0 评论 -
Attribute在.net编程中的应用(二)
.NET Framework中对Attribute的支持是一个全新的功能,这种支持来自它的Attribute类。在你的程序中适当地使用这个类,或者是灵活巧妙地利用这个类,将使你的程序获得某种在以往编程中很难做到的能力。我们来看一个例子:假如你是一个项目开发小组中的成员,你想要跟踪项目代码检查的信息,通常你可以把代码的检查信息保存在数据库中以便查询;或者把信息写到代码的注释里面,这样可以阅读代码转载 2012-01-14 16:38:46 · 479 阅读 · 0 评论 -
Attribute在.NET编程中的应用(四)
SqlCommandGenerator类的设计 SqlCommandGEnerator类的设计思路就是通过反射得到方法的参数,使用被SqlCommandParameterAttribute标记的参数来装配一个Command实例。引用的命名空间://SqlCommandGenerator.csusing System;using System.Reflection;using S转载 2012-01-14 16:57:45 · 478 阅读 · 0 评论 -
【多线程学习】:互斥锁Mutex
开始的时候自己写了段代码,其中有句关于Mutex声明方式,分别采用了带名称的和不带名称的,代码如下://Mutex mutex = new Mutex(false, "MyMutex");//带名称 Mutex mutex = new Mutex(false); //不带名称 mutex.WaitOne();原创 2012-08-08 12:49:07 · 1841 阅读 · 0 评论 -
Datatime对象的相加、相减 、比较操作
在.NET中DateTime对象可以直接进行相加、减、比较操作,其中加减的操作结果返回的是一个TimeSpan对象,也就是用TimeSpan对象表示DateTime的时间间隔: System.DateTime date1 = DateTime.Now; System.DateTime date2 = DateTime.Now.Date.AddDay(-7);转载 2012-04-05 15:28:35 · 3419 阅读 · 0 评论 -
C#中我接触到的几中初始化器.
直接上代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Csharp3._0初始化器{ class Program { public class People { publ原创 2012-07-25 16:58:45 · 1177 阅读 · 0 评论 -
C#的Enum——枚举
枚举 枚举类型声明为一组相关的符号常数定义了一个类型名称。枚举用于“多项选择”场合,就是程序运行时从编译时已经设定的固定数目的“选择”中做出决定。 枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。例如,假设您必须定义一个变量,该变量的值表示一周中的一天。该变量只能存储七个有意义的值。若要定义这些值,可以使用枚举类型。枚举类型是使用 enum 关键字声明的转载 2012-03-19 18:23:05 · 831 阅读 · 0 评论 -
再别的地方看到的程序中启动外部程序的方法(觉得挺全的,分享下)
C#调用外部程序引用:System.Diagnostics.Process// using System.Diagnostics;private string appName = "calc.exe";/// /// 1. 启动外部程序,不等待其退出/// private void button1_Click(object sender, EventArgs e)转载 2011-11-07 11:11:43 · 811 阅读 · 0 评论 -
Attribute在.NET编程中的应用(三)
用于参数的Attribute在编写多层应用程序的时候,你是否为每次要写大量类似的数据访问代码而感到枯燥无味?比如我们需要编写调用存储过程的代码,或者编写T_SQL代码,这些代码往往需要传递各种参数,有的参数个数比较多,一不小心还容易写错。有没有一种一劳永逸的方法?当然,你可以使用MS的Data Access Application Block,也可以使用自己编写的Block。这里向你提供一种另转载 2012-01-14 16:50:19 · 402 阅读 · 0 评论 -
C#遍历访问Dictionary和HashTable
一般地Dictionary是按照元素的添加顺序输出的,这和HashTable不同。 Dictionary dictionary = new Dictionary();dictionary.Add(1, "xiaowang");dictionary.Add(21, "dsd");dictionary.Add(33, "dsfdfd");dictionary.Add(4, "liusang转载 2012-03-31 12:51:26 · 13447 阅读 · 0 评论 -
Attribute在.NET编程的应用(六)
(承上节) .NET Framework拦截机制的设计中,在客户端和对象之间,存在着多种消息接收器,这些消息接收器组成一个链表,客户端的调用对象的过程以及调用返回实行拦截,你可以定制自己的消息接收器,把它们插入了到链表中,来完成你对一个调用的前处理和后处理。那么调用拦截是如何构架或者说如何实现的呢?在.NET中有两种调用,一种是跨应用域(App Domain),一种是跨上下文环境(Contex转载 2012-01-14 17:07:30 · 517 阅读 · 0 评论 -
Attribute在.NET编程中的应用(五)
Attribute在拦截机制上的应用从这一节开始我们讨论Attribute的高级应用,为此我准备了一个实际的例子:我们有一个订单处理系统,当一份订单提交的时候,系统检查库存,如果库存存量满足订单的数量,系统记录订单处理记录,然后更新库存,如果库存存量低于订单的数量,系统做相应的记录,同时向库存管理员发送邮件。为了方便演示,我们对例子进行了简化://Inventory.csusing Sy转载 2012-01-14 17:03:41 · 463 阅读 · 0 评论 -
如何通过反射调用类中的<泛型>方法
定义的接口:namespace IProgramShut{ public interface IShut { /// /// 操作名称 /// string OperatorName { get; } /// ///原创 2015-06-16 22:41:59 · 10747 阅读 · 0 评论