随笔分类 - C#基础
摘要:在一些常见的编程情形中,使用任务也许能提升性能。为了简化变成,静态类System.Threading.Tasks.Parallel封装了这些常见的情形,它内部使用Task对象。Parallel.For & Parallel.Foreach & Pararllel.Invoke ...
阅读全文
摘要:Task开启线程 有两种启动方式: 1.构造创建线程,然后启动 var taskForAction = new Task(() => { //do something }); ...
阅读全文
摘要:Microsoft .Net Framework 提供了一个标准的取消操作的模式。这个模式是协作式的,意味着你想取消的操作必须显示地支持取消。CLR为我们提供了两个类: System.Threading.CancellationTokenSource System.Threading.Cance...
阅读全文
摘要:如果程序员是猫,你是哪只猫?这个是我一直都很喜欢的一个技术,不是很麻烦,也不是很难理解,和反射配合起来,只有你想不到没有做不到的用途(夸张了哈)。运用范围程序集,模块,类型(类,结构,枚举,接口,委托),字段,方法(含构造),方法,参数,方法返回值,属性(property),Attribute ...
阅读全文
摘要:一、委托的基本的写法 internal class Program { private static void Main(string[] args) { ChainDelegate(); Console.ReadKey...
阅读全文
摘要:泛型是一个非常有用的技术,在博客园里面有太多说到泛型的好文章,这里我推荐一篇我个人觉得非常全面,也非常齐全的文章。(重造轮子很傻!!!)C# -- 泛型(1)C# -- 泛型(2)C# -- 泛型(3)
阅读全文
摘要:前言:CLR事件模式建立在委托的基础上,委托说调用回调方法的一种类型安全的方式。我个人觉得事件本质就是委托,所以把委托弄清楚,只要知道事件基本语法就会使用了(如果说到线程安全,我个人觉得这个应该和线程一起去讨论),所以这篇只做一个简单的时间介绍和写一些我看到的或我用到的一些代码。EventHandl...
阅读全文
摘要:前言: 对菜鸟开发者的忠告:花一万个小时练习 Coding,不要浪费一万小时无谓地 Debugging(也就说看代码) 看上面的UML图,我们创建一个抽象的Instrument类,类中有一个抽象方法paly,然后所有的子类都继承这个类并实现paly方法。(若不懂继承,请参照另一篇...
阅读全文
摘要:前言:继承这点事,说多不多,说少不少,这里只描述了一些我认为的基础篇,望各位大神指教。本节参照了C#高级编程和Think in java对继承的描述,我个人认为OOP只是思想,故看明白一个就说通的,只是语法上的区别。权限限制关键字类继承类继承基本写法类继承的好处 继承中的Virtual(虚方法)抽象...
阅读全文
摘要:对于这篇,不想再对值类型进行讨论,如要看值类型的内存怎么玩可以看一下(CLR内存那点事 初级),我们这篇主要讨论一下引用类型。先来装备两个类 internal class Employee { public static Employee LookUp(string name) ...
阅读全文
摘要:string是比特殊的类,说引用类型,但不存在堆里面,而且String str=new String("HelloWorld")这样的重装也说没有的。我们先来看一个方法 class Program { static void Main(string[] args) ...
阅读全文
摘要:最近回头看了一下书,对内存的理解又有新的认识。我所关注的内存里面说没有寄存器的,所以我关注的只有 托管堆(heap),栈(stack), 字符串常量池(string是一个很特殊的对象)首先我们看两个方法: void M1() { string nam...
阅读全文
摘要:看个例子: public class User { } public class Group { }class Program { static void Main(string[] args) { Object...
阅读全文
摘要:1.它计算类型以及所有基类型(一直到System.Object,虽然它没有定义自己的实例字段)中定义的所有实例字段需要的字节数。堆上的每个对象都需要一些额外的成员---即“类型对象指针”和“同步块索引”。 这些成员由CLR用于管理对象。这些额外成员的字节数会计入对象大小。2.它从托管堆中分配制定类型...
阅读全文
摘要:前言:我们知道对象分引用类型和值类型。浅克隆:复制一个现有对象,引用类型指向同一个内存块(string为最特殊的对象,这里当作值类型来看先)public class User { public int Age { get; set; } public strin...
阅读全文
摘要:这个看了蛮多遍的,但是由于有一些一直不用,老是忘记,记录一下:)private 成员只能由同一个类(class)类型中的其他成员访问。family 成员可由派生类访问,不管那些类型是否在用一个程序集中(C#用protected)。assembly 成员可由同一个程序集中的任何代码访问.(C#用int...
阅读全文