随笔分类 -  C#

摘要:我们在应用程序中使用类一组类,你想在调试器中快速查看类中的值。默认情况下调试器不会展示自定义类的信息。 此时我们可以向类添加一个DebuggerDisplay的特性。此时调试器就会你想要显示的信息。如下 [DebuggerDisplay("User Full Name={Id} {Name} {Ag 阅读全文
posted @ 2019-06-03 09:15 幕三少 阅读(683) 评论(0) 推荐(0) 编辑
摘要:在制作一个批量序列化工具时遇到了如下问题,在此记录一下,仅供参考。 主程序加载另一个程序集,将其中的所有类取出,然后对这些类分别调用泛型类或泛型方法。控制台程序解决方案如下: Main工程:提供Worker类进行数据操作,XMLTool<T>泛型类将数据集序列化为.xml文档,RootCollect 阅读全文
posted @ 2018-12-26 09:02 幕三少 阅读(9394) 评论(1) 推荐(0) 编辑
摘要:private static string GetTableName(Type type) { //检测类型是否为泛型 if (type.GetType().IsGenericType) {//取出泛型类型 var types = type.GetGenericArguments(); type = 阅读全文
posted @ 2018-10-22 18:31 幕三少 阅读(574) 评论(1) 推荐(2) 编辑
摘要:在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨。再次拿出自己的私货,在.NET平台处理文档相关的开源组件。文档处理在开发中是一个非常常见的任务了,例如导出Excel,导出Word,生... 阅读全文
posted @ 2015-07-06 12:18 幕三少 阅读(3757) 评论(4) 推荐(4) 编辑
摘要:第一课程:1.Unity类名必须与文件名保持一致2.讲属性设置为public可以在Unity中访问 public float speed; // Use this for initialization void Start () { } // Update is called once p... 阅读全文
posted @ 2015-06-29 08:34 幕三少 阅读(589) 评论(0) 推荐(0) 编辑
摘要:今天需要使用Json数据,所以用到了Json的序列化与反序列化。首先先来说怎么序列化的:1.序列化与反序列化 首先添加System.Runtime.Serialization的引用Object转换成Json文件: public static string ObjectToJson(ob... 阅读全文
posted @ 2015-06-26 18:52 幕三少 阅读(4587) 评论(3) 推荐(1) 编辑
摘要:返回“我的文档”路径字符串Environment.GetFolderPath(Environment.SpecialFolder.Personal)本技巧使用GetFolderPath方法来获取指向由指定枚举标识的系统特殊文件夹的路径。语法格式如下:public static string GetF... 阅读全文
posted @ 2015-01-06 17:23 幕三少 阅读(1400) 评论(0) 推荐(0) 编辑
摘要:using System;using System.Collections.Generic; class Program{ static void Main(string[] args) { string[] floors ={ "第3楼", "第2楼", "第11楼" }... 阅读全文
posted @ 2014-09-29 17:15 幕三少 阅读(1265) 评论(1) 推荐(0) 编辑
摘要:1.本地变量一看这个标题你可能会一愣,这是个什么东东。看个小例子:static void main(){ int a=10; MyClass mc=new MyClass();} 呵呵,这里的a与mc就是本地变量,它和字段一样,也保存数据。字段通常保存和对象状态有关的数据,而创建本地变量经常用于保存本地或临时数据。呵呵,简单吧,但是它和实例字段有何区别:实例字段本地变量生存期从实例创建开始,直到实例不再被访问从它在块中被声明开始,到块执行结束隐式初始化初始化成该类的默认值没有隐式初始化。如果变量在使用之前没有被赋值,编译器将报错存储区域由于实例字段是类的成员,所有的字段都存储在堆里,无论它是指 阅读全文
posted @ 2014-03-27 08:46 幕三少 阅读(1987) 评论(8) 推荐(9) 编辑
摘要:1..NET语言的编译器接受源代码文件,并生成名为程序集的输出文件。程序集要么是可执行的,要么是DLL程序集里的代码并不是本机代码,而是一种名称为CIL的中间语言程序集包含如下信息:程序的CIL程序中使用的类型的元数据对其他程序集引用的元数据2. 程序的编译过程 程序的CIL直到它被调用运行时才会被编译成本机代码。在运行时,CLR执行下面步骤:检查程序集的安全特性在内存中分配空间把程序集中的可执行代码发送给实时编译器(JIT),把其中的一部分编译成本机代码。 程序集中的可执行代码只在需要的时候由JIT编译器进行编译,然后它就被缓存起来以备在后来的程序中执行。这就意味着不被调用的代码不会被编译成 阅读全文
posted @ 2014-03-22 12:47 幕三少 阅读(3292) 评论(1) 推荐(0) 编辑
摘要:以前总听说扩展方法扩展方法,只是听说是C#3.0后出来的新玩意,也仅仅是知道Linq中用到好多的扩展方法,但是他究竟是个什么东东,怎么用它,用它的好处是什么,总是模模糊糊,那么我们今天就尝试揭开它神秘的面纱。 我们现在看到每个方法都和声明它的类关联,但是C#3.0的扩展方法的特性扩展了这个边界,允许编写和声明它的类之外的类关联的方法。想要知道如何利用这个特征,我们先看一个例子: ... 阅读全文
posted @ 2014-01-20 08:13 幕三少 阅读(1278) 评论(4) 推荐(1) 编辑
摘要:既然是一个小程序引发的思考,那么我们就先看看这个小程序,看看他有何神奇之处:namespace ConsoleApplication1{ class Program { static void Main(string[] args) { MyClass s = new MyClass(); s.val = 10; int i = 20; Console.WriteLine("s.val={0},i={1}",s.val,i); MyMethod... 阅读全文
posted @ 2013-12-20 08:29 幕三少 阅读(4446) 评论(54) 推荐(12) 编辑
摘要:最近在项目中有这么个需求,就是得去实时获取某个在无规律改变的文本文件中的内容。首先想到的是用程序定期去访问这个文件,因为对实时性要求很高,间隔不能超过1S,而且每次获取到文本内容都要去分发给WEB服务器做别的操作,而那个文本的写入有时候会频繁,1秒可能多次,但是也有可能在相当长一段时间内是没有任何写入的。这样一来如果每秒都去访问文件的话,一个是IO问题,还有就是每次操作都会引起后端一系列程序的反应,文本在长时间内无写入的话,一秒一次的触发一系列徒劳的事情太不可取了。最终发现了c#中的FileSystemWatcher对象,在应用FileSystemWatcher之前,首先了解一下这个对象的基. 阅读全文
posted @ 2013-12-12 18:24 幕三少 阅读(5100) 评论(10) 推荐(4) 编辑
摘要:当我们要创建一个Tcp/Ip Serverconnection ,我们需要一个范围在1000到65535之间的端口。但是本机一个端口只能一个程序监听,所以我们进行本地监听的时候需要检测端口是否被占用。 命名空间System.Net.NetworkInformation下定义了一个名为IPGlobalProperties的类,我们使用这个类可以获取所有的监听连接,然后判断端口是否被占用,代码如下:public static bool PortInUse(int port){ bool inUse = false; IPGlobalProperties ipPr... 阅读全文
posted @ 2013-12-06 09:40 幕三少 阅读(3139) 评论(1) 推荐(2) 编辑
摘要:VC中提供了API函数进行INI文件的读写操作,但是微软推出的C#编程语言中却没有相应的方法,下面是一个C# ini文件读写类,从网上收集的,很全,就是没有对section的改名功能,高手可以增加一个。using System;using System.IO;using System.Runtime.InteropServices;using System.Text;using System.Collections;using System.Collections.Specialized;namespace wuyisky{ /**//**/ /**//// /// IniFiles的... 阅读全文
posted @ 2013-11-28 17:45 幕三少 阅读(661) 评论(1) 推荐(0) 编辑
摘要:/// /// 字符串转16进制字节数组 /// /// /// private static byte[] strToToHexByte(string hexString) { hexString = hexString.Replace(" ", ""); if ((hexString.Length % 2) != 0) hexString += " "; byte[] returnBytes = new byte[hexString.Length / 2]; for (int i = 0; i /// 字节数组转16进制字符串 / 阅读全文
posted @ 2013-11-02 11:19 幕三少 阅读(2430) 评论(0) 推荐(0) 编辑
摘要:一、错误情况环境:win7+iis7.0DirectoryEntry配置IIS7出现如下错误或者是下面一段代码在IIS6.0下运转正常,但IIS7.0下运转会出错:System.DirectoryServices.DirectoryEntryiisServer;iisServer =newSystem.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1");System.DirectoryServices.DirectoryEntryrootFolder = iisServer.Children.Find(&q 阅读全文
posted @ 2013-10-10 12:54 幕三少 阅读(1564) 评论(0) 推荐(0) 编辑
摘要:当你看到这个命名空间的时候,别因为是VB的东西就匆忙关掉网页,那将会是您的损失,此命名空间中的资源最初目的是为了简化VB.NET开发而创建的,所以Microsoft.VisualBasic并不属于System命名空间,而是独立存在的。虽然是为了VB而建的,但并不妨碍我们在C#中使用它。 Microsoft.VisualBasic命名空间的资源,可以帮助我们方便、快捷的实用一些常用的计算机软/硬件及网络资源,提高开发中的效率。 对于本地计算机资源的使用,我们可能会着重关注Microsoft.VisualBasic.Devices命名空间,在这里包含了与本机设备和操作系统相关的资源。 使用这些资. 阅读全文
posted @ 2013-09-28 13:43 幕三少 阅读(3417) 评论(4) 推荐(0) 编辑
摘要:简介BackgroundWorker是.net里用来执行多线程任务的控件,它允许编程者在一个单独的线程上执行一些操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 始终处于停止响应状态。如果您需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用BackgroundWorker类方便地解决问题。该控件有三个事件:DoWork 、ProgressChanged 和 RunWorkerCompleted在程序中调用RunWorkerAsync方法则会启动DoWork事件的事件处理,当在事件处理过程中,调用 ReportProgress方法则会启动Pr 阅读全文
posted @ 2013-09-12 18:41 幕三少 阅读(1096) 评论(0) 推荐(0) 编辑
摘要:应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是 App.Config(ExeName.exe.config)。配置文件,对于程序本身来说,就是基础和依据,其本质是一个xml文件,对于配置文件的操作,从.NET 2.0 开始,就非常方便了,提供了 System [.Web] .Configuration 这个管理功能的NameSpace,要使用它,需要添加对 System.configuration.dll的引用。对于WINFORM程序,使用 System.Configuration.ConfigurationManager;对于ASP.NET 程序, 使 阅读全文
posted @ 2013-09-06 17:08 幕三少 阅读(846) 评论(0) 推荐(0) 编辑