Fork me on GitHub

随笔分类 -  .Net

摘要:自从项目中语言换成Java后就很久没有看C#了,但说实话我是身在曹营心在汉啊。早就知道.NET4.5新增了`async`和`await`但一直没有用过,今天看到[这篇文章][1]总算有了点了解,突然发现`Task`这个玩意不就是Java中`Future`这个概念吗? 阅读全文
posted @ 2014-03-08 22:43 zhanjindong 阅读(4029) 评论(7) 推荐(2) 编辑
摘要:一个简单的利用Hessian在Java和C#之间通信的例子,服务端为Java,客户端为C#。资源下载先要准备好C#和Java的第三方类库:http://hessian.caucho.com/Hssiancharp.dllhessian-4.0.37.jarHessian服务端打开eclipse创建一个Dynamic Web Project,将hessian-4.0.37.jar放到lib下,大概如图所示:创建一个接口:Hello.javapackage hessian.test.server;import hessian.test.client.HelloBean;public interfa 阅读全文
posted @ 2013-10-23 12:36 zhanjindong 阅读(3877) 评论(4) 推荐(3) 编辑
摘要:项目中一个消息推送需求,推送的用户数几百万,用户清单很简单就是一个txt文件,是由hadoop计算出来的。格式大概如下:uid caller123456 12345678901789101 12345678901……现在要做的就是读取文件中的每一个用户然后给他推消息,具体的逻辑可能要复杂点,但今天关心的是如何遍历文件返回用户信息的问题。之前用C#已经写过类似的代码,大致如下: /// /// 读取用户清单列表,返回用户信息。 /// /// 用户清单文件路径 /// 推送断点位置,用户断点推送 /// ... 阅读全文
posted @ 2013-09-01 18:52 zhanjindong 阅读(5080) 评论(9) 推荐(7) 编辑
摘要:毕业快一年了,边工作边学习,虽说对.net不算精通,但也算入门了,但一直以来对协变和逆变这个概念不是太了解,上学时候mark了一些文章,今天回过头看感觉更糊涂了,真验证本人一句口头禅“知道的越多,知道的越少”。看到最后实在乱了,就干脆装糊涂好了,本人也算半个阴谋论者,在编程语言这方面当我实在没法吃透一个语法的时候,我就归咎于编译器这个幕后黑手。我们看下面两个类Derived派生自Base:public class Base{}public class Derived:Base{}我们都这知道下面这两行代码,第一行能编译通过,第二行则无法编译通过:Base b=new Derived();Der 阅读全文
posted @ 2013-04-13 22:26 zhanjindong 阅读(4285) 评论(3) 推荐(3) 编辑
摘要:一直在实际开发中都有用到yield return,但也一直只停留在“用”的层面上,可谓一知半解。今天下班回来自己查证思考了半天,本着自己的原则一切从简提炼了一下几点(正确与否有待进一步学习):IEnumerable是对IEnumerator的封装,以支持foreach语法糖。IEnumerable<T>和IEnumerator<T>分别继承自IEnumerable和IEnumerator以提供强类型支持(即状态机中的“现态”是强类型)。yield return是编译器对IEnumerator和IEnumerable实现的语法糖。yield return 表现是实现IEn 阅读全文
posted @ 2013-03-21 23:49 zhanjindong 阅读(950) 评论(0) 推荐(0) 编辑
摘要:我们都知道C++传递参数有三种形式,传值,传指针和传引用,而一般C#中只有传值和传引用,但无论是在C#中还是C++参数传递实际上只有两种:值传递和引用传递,值传递就是将对象拷贝一份到栈上,引用传递则传递的就是对象本身。在弄清楚值传递和引用传递之前一定要弄清楚引用和指针的区别,指针的概念我想很容易理解,因为在C++中它是实实在在占据内存的一个东东,但是“引用”一词通常容易让初学者混淆,个人认为引用更多是语义上的东西,在C++中把引用就看成是变量本身,调用方法的时候无论传递的是值还是指针,其实传递的都是拷贝,而传递引用的时候即所谓的引用传递传递的就是实参本身。#include "stda 阅读全文
posted @ 2013-01-13 15:51 zhanjindong 阅读(4918) 评论(0) 推荐(0) 编辑
摘要:我们是多么希望我们写的代码一直完美的运行下去,但是这个行业的一条真理就是“没有不存在bug的软件”。最近这几个月一有空就打开我写的代码,目的只是为了苦苦寻找各种bug所在,而所有这些bug必定都源于我学艺不精。在这个过程中我发现我是多么的“善变”。截至到目前仍然没确定我干掉了所有bug,但是我得感谢它们和我的“无知”。好了废话到此结束,把我的debug过程和大家分享下。背景这些bug都出自一直在做的一个用在我们系统内部的监控组件,主要用来监控一些组件比如业务接口、sqlserver、redis、mongodb是否运行正常。主要抽象出来有以下几个对象:sqlserver之类抽象为监控对象(Mon 阅读全文
posted @ 2012-12-23 20:41 zhanjindong 阅读(756) 评论(0) 推荐(0) 编辑
摘要:public class InterfaceKey : IComparable { /// <summary> /// 接口名称 /// </summary> public string InterfaceName = string.Empty; /// <summary> /// 产品标识 /// </summary> public string Aid = string.Empty; /// <summary> /// 版本标识 /... 阅读全文
posted @ 2012-12-06 12:02 zhanjindong 阅读(1677) 评论(0) 推荐(0) 编辑
摘要:今天用.net写一个小程序,利用System.Net.Mai通过OutLook发送发送邮件,有两个附件一个是Excel一个是txt,结果奇怪的现象发生了,接收后发现excel附件名称变成了后缀为.dat的乱码,但txt的正常。在网上各种搜都没有解决,结果自己试尽各种格式的名称最终发现原来是名称太长的缘故。 阅读全文
posted @ 2012-12-05 19:20 zhanjindong 阅读(1364) 评论(0) 推荐(0) 编辑
摘要:BinaryTreeusing System;using System.Collections.Generic;using System.Linq;using System.Text;namespace BinaryTree{ public class BinaryTree { private Node _head; private string cStr; public Node Head { get { return _head; } set { _head = value; }... 阅读全文
posted @ 2012-07-25 12:59 zhanjindong 阅读(2463) 评论(0) 推荐(1) 编辑
摘要:我的博客园账号是在大三开的,到现在毕业工作,闲置了一年多,一直没写过什么东西。最近参加公司的培训,发现自己肚里有货是一回事,把那点货说出来是一回事,而把自己知道的说出来让人感觉浅显易懂又是另外一回事。市面上很多书都冠以“深入浅出”,个人感觉这四个字不是随便乱用的,《Head First 设计模式》算是做得很不错的了。当然并不是所有大牛都乐于分享,但那些乐于分享技术经验的人都是值得尊敬的。作为一枚菜鸟现阶段只想借助这个博客记录一点点自己学习上的心得。潜了这么长时间的水,也该出来透透气了。今天2012年7月25,我领毕业证那天是6月25,如果把走出象牙塔迈入社会比作是一个新的人生的话,那我这个.. 阅读全文
posted @ 2012-07-25 00:22 zhanjindong 阅读(407) 评论(0) 推荐(0) 编辑

TOP