随笔分类 -  C#

1
摘要:上下文指的是 进程间占有的资源空间。当一个进程时间片到了或者资缺的时候就会让出cpu 当另一个进程开始始用CPU之前,系统要保存即将退出进程的执行状态,以便轮到时间片或有资源的时候现场恢复.这就所谓的上下文切换.安全上下文,调用上下文,同步上下文其实本质都一样.进程切换. 阅读全文
posted @ 2019-04-23 19:21 1936xinyang 阅读(4367) 评论(0) 推荐(0)
摘要:下面泛型约束代码,where字句后面有new()约束,T类型必须有公有的无参的构造函数。 使用new关键字的作用只是让编译器在泛型实例化之处,检查所绑定的泛型参数T是否具有公共无参构造函数(public 无参构造函数),例如:InternalCreate<SomeType>(); //此处编译器会检 阅读全文
posted @ 2019-04-11 22:16 1936xinyang 阅读(1466) 评论(0) 推荐(0)
摘要:此方法通过使用延迟执行实现。 即时返回值为一个对象,该对象存储执行操作所需的所有信息。 只有通过直接调用对象的 GetEnumerator 方法或使用 Visual C# 中的 foreach(或 Visual Basic 中的 For Each)来枚举该对象时,才执行此方法表示的查询。 在查询表达 阅读全文
posted @ 2019-04-06 16:14 1936xinyang 阅读(261) 评论(0) 推荐(0)
摘要:LINQ查询方法一共提供了两种扩展方法,在System.Linq命名空间下,有两个静态类:Enumerable类,它针对继承了IEnumerable<T>接口的集合进行扩展;Queryable类,针对继承了IQueryable<T>接口的集合进行扩展。我们会发现接口IQueryable<T>实际也是 阅读全文
posted @ 2019-04-06 15:32 1936xinyang 阅读(1091) 评论(0) 推荐(0)
摘要:随同.NET4.0发布的并行扩展库的两个基本组件:TPL(Task Parallel Library)和PLINQ(Parallel LINQ)其次是TAP(Task-based Asynchronous Pattern)以及配套的C#5.0语言的支持,强烈建议使用这些高级抽象。 阅读全文
posted @ 2019-03-23 16:25 1936xinyang 阅读(94) 评论(0) 推荐(0)
摘要:并行扩展库相当有用,因为它允许使用更高级的抽象——任务,而不必直接和线程打交道。但有的时候,要处理的代码是在TPL和PLINQ问世(.NET4.0)之前写的。也有可能某个编程问题不能直接使用它们解决,因此仍然要直接操纵线程的API。 (1) (2) (3) (4) (5) 阅读全文
posted @ 2019-03-23 16:08 1936xinyang 阅读(102) 评论(0) 推荐(0)
摘要:我认为在使用多线编程之前,了解下面的基本术语,对我们是有些帮助的。 进程是给定程序当前正在执行的实例;操作系统的一个基本功能就是管理进程。每个进程都包含一个或多个线程。进程由System.Diagnostics命名空间的Process类的实例表示。 单线程程序是仅包含一个线程的进程。多线程程序的进程 阅读全文
posted @ 2019-03-23 14:55 1936xinyang 阅读(181) 评论(0) 推荐(0)
摘要:Task是可能有延迟的工作单元,目的是生成一个结果值,或产生想要的效果。任务和线程的区别是:任务代表需要执行的作业,而线程代表做这个作业的工作者。 在.Net 4中,Task.Factory.StartNew是启动一个新Task的首选方法。一般它使用的主要场景只是将一个工作任务丢给一个后台线程执行而 阅读全文
posted @ 2019-03-16 15:35 1936xinyang 阅读(2415) 评论(0) 推荐(0)
摘要:C#提供了两种类型的转换方式:当数据从"小类型"转换成"大类型"时,被称为隐式类型转换,当数据从"大类型"转换为"小类型"时,被称为显示转换。显示类型转换被称为强制类型转换,需要在前面加"()"转换操作符,并在括号类添加要转换的类型。 阅读全文
posted @ 2019-03-09 14:33 1936xinyang 阅读(974) 评论(2) 推荐(0)
摘要:C#常用的单元测试框架有XUnit 、NUnit 、MSTest 做过单元测试的同学大概都知道以上几种测试框架,这几种框架除了标注测试类和方法的特性用的不一样之外,XUnit 和 NUnit 是非常相似的,而它们比MSTest最大的不同处就是多了传值测试 阅读全文
posted @ 2019-03-03 16:55 1936xinyang 阅读(1664) 评论(0) 推荐(1)
摘要:并非只能通过继承使用多态性,还能通过接口使用。和抽象类不同,接口不能包含任何实现。下面对它们进行了比较。 1.抽象类可以不包含抽象方法, 包含抽象方法的类一定是抽象类。 2.隐式实现的话实现的方法属于实现的类的,可以直接通过类的对象访问,显式实现的话方法是属于接口的,可以看成是寄托在类中实现的,访问 阅读全文
posted @ 2019-03-02 18:30 1936xinyang 阅读(134) 评论(0) 推荐(0)
摘要:1.类中输入 prop\t\t 得到 public int MyProperty { get; set; }光标移动到 int 后方。 2.输入 ctor\t\t 得到构造器函数 public Seat() { } 3.输入 cw\t\t 得到 Console.WriteLine();光标移动到括号 阅读全文
posted @ 2019-01-20 19:00 1936xinyang 阅读(222) 评论(0) 推荐(0)
摘要:菜单工具->选项->调试->常规,去掉“要求源文件和版本匹配”与“启用地址级调试”前面的对勾。 阅读全文
posted @ 2019-01-20 18:26 1936xinyang 阅读(958) 评论(0) 推荐(0)
摘要:强命名 由一个程序集的标识组成并通过公钥和数字签名(针对该程序集生成)加强的名称,其中的标识包括程序集的简单文本名称、版本号和区域性信息(如果提供的话)。 CLR需要支持某种机制来唯一的标识一个程序集。这就是所谓的强命名程序集。.Net使用Name、Version、Culture、PublicTok 阅读全文
posted @ 2019-01-20 18:16 1936xinyang 阅读(382) 评论(0) 推荐(0)
摘要:之前很多从事C#开发的用过动软代码生成器,然后随着IT技术的快速发展,涌现出很多优秀的工具关于.Net的,首推微软的Entity Framework,其次是NHibernate。Entity Framework是微软亲儿子,和微软自家的Sql Server集成得很好,支持功能强大的Linq。NHib 阅读全文
posted @ 2019-01-01 17:43 1936xinyang 阅读(625) 评论(0) 推荐(0)
摘要:1.List<T>类型强制转换: List<UIData> datalist=null;datalist.ConvertAll<object>(input => input as object); //将UIData类型的List强制转成object类型。 List<Object> m= datal 阅读全文
posted @ 2018-12-08 22:45 1936xinyang 阅读(466) 评论(0) 推荐(0)
摘要:kernel32.dll是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。 阅读全文
posted @ 2018-11-12 11:12 1936xinyang 阅读(234) 评论(0) 推荐(0)
摘要:base是对父类的引用,而this是对类本身的引用。 子类与基类的构造函数执行顺序: 先调用父类的构造函数进行初始化,再调用继承类的构造函数,如果没有在继承类中指明父类的构造函数,则默认调用父类中无参构造函数,然后调用继承类的构造函数。 阅读全文
posted @ 2017-11-25 16:16 1936xinyang 阅读(362) 评论(0) 推荐(0)
摘要:List是一个类(Class),IList是一个接口(Interface),不能被实例化,只能用 IList <T> myIList =new List <T>(); List <Class1> List11 =new List <Class1>(); 创建一个List <Class1>,而且需要使 阅读全文
posted @ 2017-11-25 11:52 1936xinyang 阅读(1919) 评论(0) 推荐(0)
摘要:String为引用类型,最为显著的一个特点就是它具有恒定不变性。string 是不可变的引用的类型,CLR在运行时进行了优化,相同的string实际上在内存中只存在一份。 输出结果: 按理Str1和Str2指针都指向同一内存地址,如果Str1的内容发生改变,Str2应该也会相应变化。此例子,看着st 阅读全文
posted @ 2017-04-26 16:16 1936xinyang 阅读(495) 评论(0) 推荐(0)

1