
C#
YapingXin
航天/航空/军工装备行业,航电系统、遥测/测发控系统、系统故障诊断、预测与健康管理(PHM)高级系统架构师。
展开
-
C# Tips: Draw a data table in console
ConsoleTable.cs:using System;using System.Collections.Generic;using System.Text;namespace datatable{ public class ConsoleTable { /// /// This will hold the header原创 2012-11-26 08:55:39 · 4623 阅读 · 0 评论 -
C# Tips: 64位操作系统运行P/Invoke程序出现BadImageFormatException错误,错误代码:0x8007000B
在64位Windows 7上运行一个P/Invoke程序出现BadImageFormatException错误,错误代码是:0x8007000B具体错误信息如下:BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0原创 2013-12-18 14:53:14 · 4680 阅读 · 1 评论 -
C# Tips:获得当前登录计算机的用户(本地用户/域用户)
需要using的namespace:using System.Security.Principal;原创 2014-05-23 14:50:11 · 13698 阅读 · 1 评论 -
WPF Tips:ViewModelBase
对于View model,我们都需要继承自原创 2014-04-17 17:26:10 · 7724 阅读 · 0 评论 -
C# Tips: 静态方法可以被override/hide吗?
这个话题说起来有些无聊,可能缺乏实际意义,仅从语言层面讨论而已。静态方法并不受类的初始化的影响,它是针对类的,而不是针对类的实例的,所以它不可能被override。如果有一个静态方法被标记为override,编译时将会出现以下形式的错误:A static member '...' cannot be marked as override, virtual, or abstrac原创 2013-12-30 02:02:09 · 5193 阅读 · 0 评论 -
C# Tips: ICloneable<T>
问题的提出C#的ICloneable是一个非常糟糕的设计,原因有两个:(1) 它没有实现ICloneable(2) 它没有区分深拷贝(deep copy)与浅拷贝(shallow copy)。那么,我们现在就定义一个ICloneable出来。解决方案ICloneablenamespace Saturn.CommonLibrary.Infrastr原创 2013-10-15 19:32:50 · 3217 阅读 · 0 评论 -
[科普小短文]在C#中调用C语言函数(静态调用Native DLL,Windows & Microsoft.Net平台)
本文属于“科普”性质,面向对.Net不了解的读者。 对于不太了解.Net的人,如果想要了解.Net,我必须给他介绍P/Invoke。P/Invoke是什么呢?简单地说,就是在.Net中调用本地代码(Native code)的一种解决方案。所谓“本地代码”是相对于托管代码(Managed code)来说的。P/Invoke实在是一个非常棒(awesome)的特性。本来,.Net 这项技术...原创 2012-02-23 20:04:33 · 19627 阅读 · 18 评论 -
[科普小短文]在C#中调用C语言函数(静态调用Native DLL,Linux & Mono平台)
之前写过一篇小短文:《[科普小短文]在C#中调用C语言函数》,是在Windows平台下基于Microsoft.Net的一个例子。今天我们来做另外一个小例子,是在Linux平台下基于Mono的例子。关于在C#中调用C语言函数的具体技术P/Invoke,在之前那篇文章《[科普小短文]在C#中调用C语言函数》中有介绍,不了解的读者可以去看一下,这里不多介绍了,直接来看我们的例子。一、准备动态原创 2012-06-18 01:20:22 · 7898 阅读 · 17 评论 -
WPF Tips: Window.ShowDialog()方法:Cannot set Visibility or call Show, ShowDialog, or WindowInteropHelp
关于Window.ShowDialog()方法,有一个常见的容易犯的错误。下面给出这个错误的例子:DemoA:错误的例子1. 在WPF项目中,创建一个Windows:DialogWindowDialogWindow.xaml<Window x:Class="DemoA.DialogWindow" xmlns="http://schem原创 2013-09-30 23:40:42 · 11676 阅读 · 4 评论 -
C# Tips:关于类的集合属性的编程小技巧
本文是关于一些很不起眼的编程小技巧的。一、以前,我代码里会这样写:public List DataGroups { get; set; }等效于:private List _dataGroups = null;public List DataGroups{ get { return this._dataGroups; } set { this._dat原创 2013-08-16 17:17:00 · 2819 阅读 · 0 评论 -
C# Tips: 使用集合初始值设定项初始化字典
我只举例子,不解释: private static Dictionary> fixedDictForDemo = new Dictionary>() { { 1, new List{ 0.00, 0.00, 0.00, 0.00 }}, { 2, new List{ 3.30,原创 2013-07-23 20:17:18 · 6308 阅读 · 0 评论 -
Windows Form Tips: 无边框窗口实现用鼠标拖拽的功能
有时候,为了达到一些特定的UI效果,我们可能会将一个Windows Form设定为无边框的形式(FormBorderStyle设置为None),但这时,窗口也将失去正常的用鼠标拖拽的行为。但下面这个例子可以让无边框窗口的鼠标拖拽功能又恢复回来。注意这个例子只支持按住鼠标左键拖拽。假设窗口为Form1,我们为Form1增加MouseDown的响应函数Form1_MouseDown,以及M原创 2014-01-12 23:58:42 · 4764 阅读 · 0 评论