C# 知识点集合
1.一个Visual studio软件进程只能打开一个程序集,但是一个程序集可以加载多个项目,通过程序集的添加功能可以实现。
2.F11单步调试,F10跨程序调试(一般用不到)
3.VS如何快速的切换到行尾写;号? ---有时可以使用tab,有时可以使用shift+;键
4.VS中的快捷键,Ctrl+G按照指定行号跳行,Ctrl+A,Ctrl+K,Ctrl+F跳行,F7查看当前winform程序的后台代码,“Shift+ F11”执行当前执行点所处函数的剩余行,“Shift
+ F5”停止运行程序中的当前应用程序。可用于“中断”模式和“运行”模式(这两个调试的时候才经常使用吧,现在感觉没什么用)。
5.字符串= 整型+字符串,这里面存在一个隐式转换,这样写是可行的
6..winforms中控件的反复添加或者删除不会影响性能,如果先删除后台代码,前端出现错误,那么可以通过转到代码处来删除引用来实现完全删除。
7.string.empty 和空字符串有什么区别?答:一样的,string s = string.Empty = "" = null ;
8.一个程序集只有一个命名空间,这个命名空间就是这个程序集下所有程序共享的那个命名空间
9.internal指的是在命名空间内共享,class默认是internal修饰的
10.private 私有构造函数只能在类中使用,在外面无法使用,初始化的时候无法用
11.很少使用代码使用析构函数,但是像数据库连接这种处理,要是不处理掉,是永远不会自动被GAC回收的,所以需要析构函数来处理
12.string.format()是项目中常用的,一般不适用+来链接字符串,那是偷懒的写法
13.a1是变量,string字符串的输出可以这样写$"这次要输出的字符串{a1}"
14.静态构造函数(创建成员或使用静态函数、变量的时候,都会调用静态函数)、普通构造函数(NEW的时候才调用),数据库连接的时候使用,创建一次反复使用,创建时消耗资源的,这样提升了性能,相当于一次性筷子,用一次就好了
15.EventHandler S里面的EventHandler表示一个接口,S表示一个继承了这个接口的类;对类来说也是的,不管是值类型、引用类型,包括抽象类,new才代表实例化,string
s,object o这种仅代表声明,不代表实例化,所以抽象类可以用 Expression left这种声明方式来表示:Expression的子类可以将left替换;
16.匿名方法必须写delegate,不写的话就是lambda表达式了
17.表达式树的作用就是跨编译器传输,linq TO SQL SERVER或者linq to EF上可能用的到,大部分人一辈子都不用到
18. Speak s= new Speak(j.ss); 其中j.ss是j对象ss方法,委托的初始化必须加入一个函数才可以
19.对象的初始化必须加()括号 对象名 j = new 对象名();
20.winform事件默认调用EventHandler委托,这个有两个参数objecjt 和EventArgs,所以所有winform事件都是这两个参数
21.迭代器的用法 yield return(返回的是枚举元素) 和yield break,迭代器是通过编译器的一层额外处理,来简化创建可用于foreach的枚举集合工作,迭代器使我们更加方便的写出可用于foreach循环的枚举集合。我觉得有个模型来理解必须用这个就好了,现在还没找到,无法理解IEnumerator,IEnumerable<T>的用法
22.object实际应该叫做东西,不应该叫做对象
23..function翻译为函数,但是在英文中的涵义是功能,面向过程的语言强调的是功能,不是强调的是过程,面向过程其实强调的是面向功能
24.class描述抽象事物的类型,不再强调功能,强调的是归类,泛泛的东西是类,具体的东西就是对象
25.常数:表示与该类相关联的常数值
26.字段:该类的变量
27.方法,行为,用于实现可由该类执行的计算和操作
28.属性:用于定义一些命名特性,通过它来读取和写入相关的数据
29.事件:用于定义可由该类生成的通知----这个以后改一下,觉得这个定义不怎么好理解
30.索引器:使该类的实例可按与数组相同的方式进行索引
31.运算符:用于定义表达式的运算符,通过对实例进行运算
32.实例构造函数:用于规定在初始化该类的实例时
33.
[] 是针对 特定类型、固定长度的。
List 是针对 特定类型、任意长度的。
Array 是针对 任意类型、固定长度的。
ArrayList 是针对 任意类型、任意长度的。
34.匿名类型的数据是readonly的,不能修改,这些数据值临时使用的,可以看作是装载数据的容器
35.MessageBox.show("this is a test",MessageBoxButtons.ok,MessageBoxIcon.Hand)
36.WINFORM中的简写
LABLE LBL
BUTTON BTN
FORM FRM
37.NULL的值是打印不出来的,比如在例子public static readonly 类名A Empty;,Empty只能是A的类或子类,但static的值无法继承或复制,所以Empty就是NULL,且无法修改
38. Array 的命名空间是 System
Array array = Array.CreateInstance(System.Type.GetType("System.Int32"), 3); // Array 是抽象类,不能使用 new Array 创建。
array.SetValue(1, 0);
array.SetValue(2, 1);
array.SetValue(3, 2);
39.VB的语法和C#出入比较大,没有特殊的需要的话,学一门就可以干活了
40.属性SET、GET上的访问修饰符默认是跟属性前面的修饰符一样,如果非要在get或者set上加访问修饰符,就要比前面的属性上的访问修饰符“小”
41.VS中的链接SQL SERVER是干嘛用的?
但是这个功能是面向软件架构师的,对你这样还在学SQL语句的初学者来说是没有什么用。甚至对于资深的数据库管理员来说,除非他们在和软件架构师合作设计数据库,否则仍旧是没有什么用
第二阵营是sublime,为Emacs/Vim提供了很多未来的高手,也带来了很多插件创意(比如git-gutter)
第三阵营,其他编辑器,对vim/emacs基本无贡献,某些人会最终转到sublime,然后鄙视原来的编辑器,结束了
45.C#中使用zipfile关键字的时候,需要在头问价和引用中分别添加引用文件;
46.哈希表这种数据结构似乎无法存储图片的
47.静态方法中没法访问实例变量,而在实例方法中可以(还可以使用关键字this)
48.子类重载父类构造函数base关键字,既可以参数少的重载参数多的,又可以参数多的重载参数少的
49.public static Student operator -(Student s1, Student s2) ,operator这个操作符只能用在Student这个class类中被操作使用
50.结构继承自system.ValueType,类继承自system.Object,区别如下:
结构
- 没有默认的构造函数,但是可以添加构造函数
- 没有析构函数
- 没有 abstract 和 sealed(因为不能继承)
- 不能有 protected 修饰符
- 可以不使用 new 初始化
- 在结构中不能实例化字段,
- 结构中的属性默认是private,跟类一样
类
- 有默认的构造函数
- 有析构函数
- 可以使用 abstract 和 sealed
- 有 protected 修饰符
- 必须使用 new 初始化
51.虚方法可以任何类中声明,没有限制
52.
System.Collections.IDictionaryEnumerator d = ht.GetEnumerator();
while (d.MoveNext())
{
Console.WriteLine("key:{0} value:{1}", d.Entry.Key, d.Entry.Value);
}
看了这个方法就一下子理解了IEnumerator类型和GetEnumerator方法的用法
53.字典里键值对一把比较复杂的用法,字典的值类型还是一个数组
Dictionary<Tkey,Tvalue>是Hastbale的泛型实现。
Dictionary和HashTable内部实现差不多,但前者无需装箱拆箱操作,效率略高一点。
54.protected IList List { get; },这句话在collectionBase的定义中,通过ILspy反射看到List返回的是this对象,那么访问List返回的就是一个类对象本身,这个对象本身有继承了IList接口,IEnumerable接口,所以他具有集合的特性,可以对它使用索引器this[int index]
foreach (KeyValuePair<string, string> kvp in myDictionary) { string key = kvp.Key;//key包含了字典里的键 for (int i = ; i < kvp.Value.Count; i++) { Response.Write(kvp.Value[i]); } }
55.object()函数比较对象的状态,如果一个对象的每个属性值都与另一个对象属性值相同,比较结果就是true,但是==比较的是引用,若两个对象的引用来自同一个对象,那么才返回true
56.throw会抛出一个异常,外层的catch语句会根据catch的参数类型对throw抛出的异常进行匹配,如果成功,就在响应的catch块内得到处理,什么都不抛,那就什么都不做。
57.streamwriter的flush关闭缓存区有什么用吗?用代码实现看看区别 public string age和public string age{set;get;}有什么区别吗? Lambda表达式和lambda语句有什么区别? IEnumerable 和 IEnumerator 有什么区别? 如何实现GetNumerator方法? 什么时候用var qq = from c in d where xxx select new {}; 什么时候用var qq = d.where().select()
58.接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类? 答:接口是可以继承接口的,抽象类是可以实现接口的,抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数,没有也无所谓,编辑器会默认生成一个无参的构造函数。
59.Collection和Collections的区别? 答:Collection是集合类的上级接口,Collections是针对集合类的一个帮助类,它提供一系列静态方法来实现对各种集合的搜索,排序,线程安全化操作。
C# 知识点集合的更多相关文章
- fullcalendar日历控件知识点集合
1.基本的语法: 首先,fullcalendar和JQUERY一样,以面向对象的方式来组织代码.当然,这里的面向对象不过指能够把整个fullcalendar理解为一个类,这个类里包含有非常多的属性.方 ...
- php知识点集合
--------------------------------------------------------- PHP知识大全 ------------------------ ...
- 跟着刚哥梳理java知识点——集合(十二)
Java集合分为Collection和Map两种体系 一.Collection接口: Collections接口为我们提供了以下方法: size():返回集合中元素的个数 add(Object obj ...
- iOS知识点集合--更改(2)
3.nsmutablearray *a 如果直接赋值 a = @[@"d",@""]; 这个时候a 是不可变的 字典也是如此 2.如果接口调用错误的话 打印re ...
- lr_场景设计之知识点-集合点、loadgenerator
1.controller原理 通过场景设计来模拟用户的真实操作并调用bugen中的脚本,再通过设置的压力机产生压力,在场景运行中实时监控用户的执行情况,tps,响应时间,吞吐量,服务器资源使用情况: ...
- iOS学习——iOS开发小知识点集合
在iOS学习和开发过程中,经常会遇到一些很小的知识点和问题,一两句话就可以解释清楚了,这样的知识点写一篇随笔又没有必要,但是又想mark一下,以备不时之需,所以就有了本文.后面遇到一些小的知识点会不断 ...
- javascript 相关小的知识点集合
本文主要是列出一些javascript 相关的,不限于javascript的,容易记错或者遗忘的小知识,小技巧. 1.javascript中的false 在 JavaScript,常见的 false ...
- crm作业知识点集合[三]
知识点1 我们要实现一个这样的功能,在学生表中,可以查看每个学生的报名的班级的所有的成绩,就是下图的效果 1.首先我们需要在学生表中自定义一列,这一列的内容就是一个a标签,指向另外一个页面,而我们在另 ...
- crm作业知识点集合[二]
知识点1 前面我们实现了这个功能,就是在models中如果有了choice选项,我们可以实现在页面显示这个chocice的value值,而不是key值,我们这个知识点就是在优化一下这个点 首先如果表中 ...
- crm作业知识点集合[一]
知识点1 1.当我们通过model建立一对多或者多对多的关系的时候,默认情况下,会关联所有的字段,如果我们使用djanog的forms的话,可以加一个属性,限制我这个字段只关联哪些字段,就是用下面的写 ...
随机推荐
- 【cl】cmd相关命令
cd 进入目录 dir 列出当前目录下的文件[在linux上是ls] e: 进入E盘 tab键可以快速进入目录
- SQL SERVER读书笔记:内存
系统先操作地址空间,真正要用的时候才申请物理内存,进行使用. Reserved Memory 保留内存,虚拟内存 Commited Memory 提交内存,物理内存 [如何判断SQL SERVER ...
- Node.js:Strea
ylbtech-Node.js:Stream 1.返回顶部 1. Node.js Stream(流) Stream 是一个抽象接口,Node 中有很多对象实现了这个接口.例如,对http 服务器发起请 ...
- bind(),call(), apply()方法的区别是什么?
bind(),call(), apply()方法的区别是什么? 共同点:改变this指向,任何调用都不在起作用 bind() 改变this的指向,不会调用函数,返回一个新的函数 var o ={a:' ...
- 【转】什么是P问题、NP问题和NPC问题
原文链接:http://www.matrix67.com/blog/archives/105,感谢Matrix67,看完这篇文章终于把这个几个概念弄明白了!! 这或许是众多OIer最大的误区之一. ...
- 关于react-router-dom入门配置
react-router-dom入门配置 配置 参考:github https://reacttraining.com/react-router/web/api/BrowserRouter 1. 导入 ...
- Oracle数据库实例
数据库通常由两部分组成:数据库和数据库实例 数据库与实例的关系:数据库指的是:物理数据.数据库管理系统.即物理数据.内存.操作系统.用户访问Oracle都是访问一个实例,实例名指的是用于相应某个数据库 ...
- 【Oracle】管理还原数据(undo)
1. 查看undo相关参数 SYS@LGR> show parameter undo NAME TYPE VALUE ------------------------------------ - ...
- py2exe打包OpenCV,找不到libiomp5md.dll
问题:py2exe打包OpenCV,找不到libiomp5md.dll 解决方法:把 libiomp5md.dll 从numpy/core/ 里面复制到 python27/DLLS/文件夹!!!
- 时空上下文视觉跟踪(STC)
论文的关键点是对时空上下文(Spatio-Temporal Context)信息的利用.主要思想是通过贝叶斯框架对要跟踪的目标和它的局部上下文区域的时空关系进行建模,得到目标和其周围区域低级特征的统计 ...