
C#,学习笔记
UTD
这个作者很懒,什么都没留下…
展开
-
C#学习笔记2-静态常量和动态常量
1.静态常量public const int constValue= 1;静态常量只能声明简单的数据类型,如:整型、浮点型、枚举或字符串。故静态常量属于值类型,不可以用new来初始化静态常量,用const定义的常量需要用访问静态常量的方式去访问,用访问对象成员的方式访问就会报错。静态常量在编译时,编译器会自动将它替换成其对应的值,例如:int num = constValue;原创 2017-09-22 18:07:02 · 524 阅读 · 0 评论 -
C#学习笔记18-匿名方法和Lambda表达式
匿名方法是没有方法名,只有方法体,调用只能通过委托来实现。匿名方法一般用于回调函数。Func plus = delegate(int num1, int num2){ return num1 + num2;};上面为一个匿名方法的定义和实现,实现了两个数字的相加。原创 2017-10-02 17:15:03 · 311 阅读 · 0 评论 -
C#学习笔记17-Action委托和Func委托
Action委托是系统自带的委托类型,它可以定义一个没有返回值得委托。例如:static void Print(int x, string y, double z){ Console.WriteLine(x + y + z);}static void Main(string[] args){ int x = 40; Action a = Print; a原创 2017-10-02 16:26:05 · 226 阅读 · 0 评论 -
C#学习笔记16-结构体和类
结构体和类的区别: 在做一个项目时,使用了较多的结构体,并且存在一些结构体的嵌套,即某结构体成员集合包含另一个结构体等,总是出现一些奇怪的错误,才终于下决心好好分析一下到底类和结构体有啥不同,虽然它们很相似,但确实有很大的不同,用不好难免出的问题会比较多,现总结一下:一、结构体和类非常相似:1,定义和使用非常相似,例子如下:public struct Student转载 2017-09-28 17:21:46 · 265 阅读 · 0 评论 -
C#学习笔记15-泛型
原文链接:http://www.cnblogs.com/yueyue184/p/5032156.html 我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。有没有一种办法,在方法中传入通用的数据类型,这样不就可以合并转载 2017-09-26 17:00:58 · 356 阅读 · 0 评论 -
C#学习笔记14-密封类和密封方法
如果我们希望自己的类或者方法不被继承,我们可以使用sealed来修饰我们的类或者方法。sealed需注意的情况:1.在声明密封类时可以直接声明,其他类就无法继承该类;2.在声明密封方法时,该方法必须是继承父类的虚函数才可以声明,如:public class C1{ public virtual void Hello() { Console.Write原创 2017-09-25 16:14:51 · 208 阅读 · 0 评论 -
C#学习笔记13-抽象类和接口
一、抽象类: 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。 二、接口: 接口是引用类型的,类似于类,和抽象类的转载 2017-09-25 15:58:06 · 184 阅读 · 0 评论 -
C#学习笔记12-GC的工作原理基础和垃圾回收机制
1.GC工作原理:http://www.cnblogs.com/juzzs/p/5308813.html2.GC垃圾回收机制:http://blog.youkuaiyun.com/xmsheji/article/details/5452914转载 2017-09-25 14:51:47 · 341 阅读 · 0 评论 -
C#学习笔记11-匿名类型var
var是C#中的匿名类型,可以代替任何的类型,编译器会根据上下文来判断var代替的类型。var类似object,但效率比object高。使用var满足以下特点:1.var类型会被编译器根据初始值的类型推断出具体的类型;2.var类型的局部变量必须赋予初始值;3.无法将null赋值给隐式类型的局部变量;4.var类型变量的定义必须是在方法中或者在属性get、set访问器中;原创 2017-09-25 14:07:59 · 328 阅读 · 0 评论 -
C#学习笔记10-重写、覆盖和重载
1.重写在声明时,父类的方法前面加上virtual关键字,子类的方法前面加上override关键字,且与父类方法同名,表示父类的方法可以被子类进行修改和重新定义。重写可以实现面向对象象编程的多态性。用子类实例化父类,调用的会是子类的方法:class C1{ public virtual void Say(){ Console.WriteLine("My name原创 2017-09-25 10:08:14 · 235 阅读 · 0 评论 -
C#学习笔记9-指数参数params
当要传入函数的形参个数不确定并且形参属于相同的类型时,我们可以使用指数参数params来实现。static int Sum(params int[] num){ int res = 0; foreach (int i in num) { res += i; } return res;}static void Main(string[] args){ int sum原创 2017-09-23 17:45:22 · 299 阅读 · 0 评论 -
C#学习笔记8-整型的三种强制转换int、int.Parse()和Convert.ToInt32()
1.(int)适合简单数据类型间的转换,会直接截取转换的内容整数部分,例如:(int)4.6 = 42.int.Parse()参数类型只支持string类型。也可以用Parse来转换成float和double,如果小数点多于1个会抛出异常,值为null也会出现异常。3.Convert.ToInt32()适合把Object类型转换为int型。舍入原则:会返回相差最小的原创 2017-09-23 16:19:06 · 537 阅读 · 0 评论 -
C#学习笔记7-foreach
foreach可以实现一个集合的遍历,foreach是建立在IEnumerable 和IEnumerator这两个接口的基础上的,使用foreach的前提是容器实现了IEnumerable接口。foreach的实验原理:http://blog.youkuaiyun.com/dk_0520/article/details/68946830转载 2017-09-23 12:16:53 · 221 阅读 · 0 评论 -
C#学习笔记5-string和String
string是String的别名,在使用时基本没有区别。把字符串当对象时使用string,把字符当类时使用String。string是C#的保留关键字,所以变量命名不可以用string,但是可以使用String。原创 2017-09-23 10:38:24 · 224 阅读 · 0 评论 -
C#学习笔记4-string和StringBuilder
1.stringstring是字符常量,也就是不可变,每次对string类型对象操作时系统就会另外新建一个对象,让原本的string指向新对象。这样的操作方式会直接影响系统效率,故处理速度是最慢的。关于string的concat操作,public String concat(String str)作用是在字符串末尾连接新的字符串。但它的原理是,如果参数字符串的长度为0,则返回自原创 2017-09-23 09:46:35 · 296 阅读 · 0 评论 -
C#学习笔记3-值类型和引用类型
1.值类型包括的类型:数值类型、结构体、bool型、枚举和可空类型。内存分配:值类型会被分配在托管栈中,变量在生命周期结束后会自动释放。存储方式:值类型会直接存储数据本身。效率:效率高,没有地址转换。赋值方式:会创建一个新对象。2.引用类型包括的类型:数组、类、接口、委托、object、字符串和null类型。内存分配:引用类型会被分配在托管堆中,变量不会在生原创 2017-09-22 19:08:59 · 297 阅读 · 0 评论 -
C#学习笔记6-关于||和&&的注意项
||和&&都是布尔运算符,运行一下程序会出现一个有趣的现象int a = 10;int b = 15;Console.WriteLine((10 == a++) || (15 == b--));Console.WriteLine("{0}, {1}", a, b);最后会输出的情况是:原创 2017-09-23 11:07:10 · 183 阅读 · 0 评论 -
C#学习笔记1-命名空间、标识符和关键字
1.命名空间namespace,是代码的容器,方便唯一标识代码及其内容;2..命名空间是以“层”形式存在的,有多个层,则用“.”来分开;3.关于using,作用其一是可以引用命名空间,其二可以给命名空间一个别名,语法:using 别名 = 命名空间;4.标识符,是我们编程过程中的命名,比如:常量、变量、数据类型等;5.关键字,是对于C#编译器而言,有特定含义的名称,比如:using原创 2017-09-22 16:48:08 · 618 阅读 · 0 评论 -
C#学习笔记19-委托和事件
1.委托关键字:delegate使用delegate可以声明一个委托,delegate void MyDelegate();委托可以将它理解为一个数据类型,以后就可以用MyDelegate来声明具有这种签名的新委托。=可以用来初始化,+=用来添加新的方法,-=用于删除。static void Test1(){ Console.WriteLine("Test1");原创 2017-10-02 20:56:14 · 703 阅读 · 0 评论