随笔分类 -  C#

记录而已
摘要:.Net的异常是否具有相关性? 相关性是指其他模块的错误会造成此模块无法正常工作,且两模块并不存在明显的组合或者包含关系。比如A与B并不直接存在服务与被服务的关系,但A的错误导致B失败了。比如,我在某一处执行了如下语句,得到的错误却很奇怪。 发生的异常详细信息如下: 但Ping.SendPingAs 阅读全文
posted @ 2016-12-19 16:34 jjseen
摘要:1. 如何在诸如ListBox这样的项中绑定父类数据上下文。 在上述代码中,ListBox的ItemSource为某个集合,在其模板中绑定了集合实体成员的Name属性。假设存在这样一个需求,需要在个ListBoxItem上做统一的一项操作,比如检查、删除等,则需要为ListBoix的某个控件(比如按 阅读全文
posted @ 2016-12-15 11:39 jjseen
摘要:当使用(uint)-1时,编译器会给出警告:常量-1无法转换为uint,使用unchecked语句重写。DWORD在转换为C#类型时为uint,既然无法使用uint强制转型(-1),那就需要其他办法了。既然编译器给出的提示是使用unchecked语句重写,可以一试。之前没有使用过unchecked语 阅读全文
posted @ 2016-10-04 12:06 jjseen
摘要:原文: 《Best Practices for Excetpions》 链接:https://msdn.microsoft.com/en-us/library/seyhszts(v=vs.110).aspx 译文: 设计优秀的应用程序能够处理运行过程中出现的异常和错误以避免应用程序崩溃。这篇文章描述 阅读全文
posted @ 2016-09-30 11:04 jjseen
摘要:在Win32 Api中有很多添加/设置函数在参数上支持多种不同类型的结构体。这些参数定义为LPVOID* 或者LPBYTE,LPVOID*一般由Win32 分配内存空间,在C#从通过System.IntPtr进行遍历[1]。LPBYTE空间在函数调用的外部进行分配,之所以定义为LPBYTE,是因为这 阅读全文
posted @ 2016-08-07 12:54 jjseen
摘要:使用C#调用Win 32 Api大部分情况下基本只涉及到参数类型的转变,但在遇到Win 32 Api返回LPVOID *lpBuff 时会遇到一些解析遍历难题。lpBuff为二维指针,*lpBuff是指向其内容的数组的首地址,在C/C++中可直接通过数组下标进行访问。但在C#中会有如下问题: 在相关 阅读全文
posted @ 2016-08-03 21:14 jjseen
摘要:Exception: 集合已修改;可能无法执行枚举操作。 如果确实存在需要先确认字典是否存在指定键,然后修改怎么办?很简单,改变遍历源,直接修改目标。这样在语义上也更加正确一些。 阅读全文
posted @ 2016-07-25 09:55 jjseen
摘要:团队正在开发一个仪器控制软件的框架,希望该框架能兼容/容忍一些硬件的变换,以及灵活定制建立在该硬件平台之上的工作流。目标仪器使用了很多的串口通信(Serial Port),所以大家觉得应该设计/封装一个统一的串口类来管理串口通信的一致性。就我个人的意见来说,我不是建议在System.IO.Port. 阅读全文
posted @ 2016-05-30 23:14 jjseen
摘要:如果Dll中有某个类的方法返回dynamic实例,并且dynamic对象实际实例为匿名类类型,则Dll的外部使用者可能最终无法正常使用此dynamic对象。当使用此dynamic对象时,可能会遇到x属性没有在object中定义的错误,此错误属于Microsoft.CSharp.RuntimeBind 阅读全文
posted @ 2016-05-26 14:31 jjseen
摘要:static是申明静态字段、静态方法或者静态类的修饰符。使用static申明的字段属于类型本身而不属于任何字段,声明的类也具有一些特别特性,比如不能实例化,不能继承等。用通俗化的语言来说,static字段即使创建多个类型实例也只会声明一次,应为它属于类型。它在所有类实例之间皆可访问,可以认为静态字段 阅读全文
posted @ 2016-05-24 16:01 jjseen
摘要:协作开发时,接口的不一致性会导致效率低下。一致性大一点来讲,就是一些共同约定的东西,成文的或者不成文的。比如Asp.Net MVC,所有的控制器都被命名被*Controller,如果你不这样命名,Asp.Net MVC很可能不能为你自动创建*Controller实例,无法使控制器按你的意图工作。小一 阅读全文
posted @ 2016-05-20 16:01 jjseen
摘要:毫无疑问,Exception有很多优点。查看任何一本面向对象的书籍,都会提到异常相对于返回值标记状态的不足以及避免错误导致程序崩溃的问题。看起来是很好的,用起来也是很好的。可是这么多年过去了,异常用的并不是很好,甚至有点不知所谓。最近用异常有点感觉,所以拿出来分享一下。 首先说之前异常用起来没有感觉 阅读全文
posted @ 2016-05-15 22:24 jjseen
摘要:想用ListBox作一个类似IOS 设置的菜单,却发现很难改变ListBoxItem鼠标移过、选中的默认蓝色背景与边框。 尝试使用Style来设置strigger,依然不成功。在百度搜索一些资料,提到了重新定义系统Bursh的方式,依然工作不成功。但这给我了我一些提示,虽然这些搜索结果都没有提到为什 阅读全文
posted @ 2016-05-14 00:09 jjseen
摘要:Asp.net Web Api提供了RESTFul web服务的编程接口。默认RESTFul 服务没有提供任何验证或者基于角色的验证,这显然不适合Put、Post、Delete这些操作。Aps.net MVC提供了认证过滤器,结合Http基本认证,可以很好的实现RESTFul服务的认证。选择Http 阅读全文
posted @ 2016-04-26 11:32 jjseen
摘要:在使用Visual Studio设计XAML时,设计器运行在[设计时]状态。VS在内部运行这些代码,帮你把界面的类真实效果展示出来。一般情况下也不会有什么问题,但是当代码中存在外部资源时,XAML可能工作并不正常——比如设计了一个状态指示器,该指示器连接了硬件传感器,需要实时查询传感器状态,并且该传 阅读全文
posted @ 2016-03-24 15:59 jjseen
摘要:当一个App需要推出多语言版本时,就需要使用到【全球化与本地化】服务。 原理及过程 资源文件中包含了所有的控件信息,通过导出这些控件信息,修改其对应的相关属性(比如TextBlock的Text属性)的字符串,即可实现多语言版本。在资源文件中,控件通过x:uid进行标示。 WPF国际化的步骤如下: 1 阅读全文
posted @ 2016-03-04 16:21 jjseen
摘要:应用场景: 控制软件工程拆分为多个子项目,在开发阶段希望每个子项目的日志是单独的。同时又希望日志统一集中定义在Tools(Tools为工具类项目,生成Tools.dll)下,而不是分散在各个子项目中。这就需要解决以下几个问题: 如何在DLL方案中配置Log4net;如何分类Logger;如何在外部使 阅读全文
posted @ 2015-12-29 17:19 jjseen