C#.NET
文章平均质量分 57
deargua
学下吧,软件工程师
展开
-
C#基础数据类型
值类型数据大小(值类型都继承自ValueType类):bool -> System.Boolean (布尔型,其值为 true 或者 false)byte -> System.Byte (字节型,占 1 字节,表示 8 位正整数,范围 0 ~ 255)sbyte-> System.SByte (带符号字节型,占 1 字节,表示 8 位整数,范围 -128 ~ 127)原创 2017-04-04 00:35:02 · 1485 阅读 · 0 评论 -
你可能不知道的陷阱:C#委托和事件的困惑
一. 问题引入 通常,一个C语言学习者登堂入室的标志就是学会使用了指针,而成为高手的标志又是“玩转指针”。指针是如此奇妙,通过一个地址,可以指向一个数,结构体,对象,甚至函数。最后的一种函数,我们称之为“函数指针”(和“指针函数”可不一样!)就像如下的代码:int func(int x);/* 声明一个函数 */ i转载 2017-11-05 14:55:23 · 496 阅读 · 0 评论 -
C#委托
1.C/C++中观察者模式的实现可以把回调函数作为指针传递给主体,然后由主体在适当的实际确定什么时候调用观察函数。但是C#没有指针用法,是无法将函数作为参数直接传递的,所以就有了Delegate。委托用来实现C/C++中函数指针的功能,它允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m。2.delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的原创 2017-11-04 20:49:13 · 398 阅读 · 0 评论 -
C#笔记2
C#笔记原创 2017-10-30 23:01:55 · 321 阅读 · 0 评论 -
C#笔记3
1.Path和File是System.IO下面的两个静态类,可以用鼠标操作的动作都可以用这两个类来进行操作。2.File读取文件时是一次性将文件全部读取到内存,所以如果文件过大是不适合用File来读取的。此时使用FileStream的形式。FileStream是字节级别的操作。3.StreamWriter和StreamReader可以操作字符。当然可以用Stream来操作字节。4.原创 2017-11-03 23:15:21 · 283 阅读 · 0 评论 -
C#笔记
1.C#中的静态函数不作为普通实例的成员方法访问,如果调用静态函数时,必须用类名+静态函数名的形式。2.重写GetHashCode()函数,一般用各个成员变量的哈希码进行^ xor 来得到新的哈希值。3.只有在父类中被标记为virtual,abstract,override的方法才可以被重载,其他的都看不可以。原创 2017-10-28 21:27:40 · 276 阅读 · 0 评论 -
C#进程 线程学习笔记1
1.C#中可以直接操作进程System.Diagnostics.Process,从命名空间上可以看出,这个多用来调试用。但是里面确实有很多很好用的方法。包括启动程序process.start,关闭进程process.kill()等等。2.进程一般用的比较少,但是线程是非常常用的内容。前面说到Thread类已经逐渐被Timer和Task类代替,但是现阶段很多代码中还是已Threa原创 2017-11-05 23:10:54 · 639 阅读 · 0 评论 -
C#接口显示实现
基础知识值类型的变量是在线程栈中分配的,值类型都继承自ValueType类。New出来的变量是放在堆中的,称为托管堆。Enum 和struct都属于值类型。接口接口可以定义属性,但是不能定义字段。但是属性的get,set函数只能声明。namespace App1{ class TEST { static void Main(string[]原创 2017-04-16 10:39:52 · 505 阅读 · 0 评论 -
c#中访问修饰符和声明修饰符
访问修饰符所有类型和类型成员都具有可访问性级别,用来控制是否可以在您程序集的其他代码中或其他程序集中使用它们。 可使用一下访问修饰符指定声明类型或成员时类型或成员的可访问性。public同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员。private只有同一类或结构中的代码可以访问该类型或成员。protected只有同一类或转载 2017-04-04 22:54:37 · 1481 阅读 · 0 评论 -
Object类
Object是所有类的基类(Object和object等同)。通过F12 object可以看到基类的声明如下。namespace System{ public class Object { public static bool Equals(object objA,object objB){} public static bool Refere转载 2017-04-04 22:21:32 · 396 阅读 · 0 评论 -
VS环境设置
所有的设置选项可以在下面的设置中进行搜索即可。工具-选项-搜索框搜索1.设置行号工具->选项->文本编辑器->C#->General->行号2.设置字体工具-选项-Environment-font and colors3.Reset所有设置项目工具-import and export Setting-Reset All setting4.启动项目设定在解原创 2017-04-03 23:30:23 · 1149 阅读 · 0 评论 -
C#编译过程
程序的编译和运行,总得来说大体是:首先写好的程序是源代码,然后编译器编译为本地机器语言,最后在本地操作系统运行。下图为传统代码编译运行过程:.NET的编译和运行过程与之类似,首先编写好的源代码,然后编译为微软中间语言代码,运行的时候即时编译为本地机器语言,同时.NET代码运行时有一个CLR环境来管理程序。如下图为.NET代码编译运行过程:下面详细介绍下编译运行时的一些概念。转载 2017-04-03 22:55:24 · 3512 阅读 · 0 评论 -
面向对象基础
三大特性:封装,继承,多态 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中转载 2017-04-03 22:41:14 · 229 阅读 · 0 评论 -
C#线程学习笔记2
1.当线程访问同一资源时,需要加锁。C#中加锁的方法是用lock关键字来执行:lock(objectLocker){codeB}对于(objectLocker)的要求,最好使用private static readonly 的内部变量。不能使用this,因为在一个线程中如果执行了有lock(this)的函数,就会锁定对象本身。如此该对象就不能背其他线程调用,如此当在其他线程中使用时就会出现原创 2017-11-16 22:52:36 · 440 阅读 · 0 评论