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是干嘛用的?

答:Visual Studio里的SQL项目是设计数据库用的,设计完会生成一个.dacpac文件,你可以拿来用msdeploy部署到一个数据库,生成表、视图、存储过程之类。
但是这个功能是面向软件架构师的,对你这样还在学SQL语句的初学者来说是没有什么用。甚至对于资深的数据库管理员来说,除非他们在和软件架构师合作设计数据库,否则仍旧是没有什么用
42.关于编辑器的选择,我觉得知乎上写的一段很好,摘抄如下:

著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:陈斌 链接:http://www.zhihu.com/question/29984607/answer/46352770 来源:知乎

第一阵营是vim/emacs,你想要的你不想要的都有
第二阵营是sublime,为Emacs/Vim提供了很多未来的高手,也带来了很多插件创意(比如git-gutter)
第三阵营,其他编辑器,对vim/emacs基本无贡献,某些人会最终转到sublime,然后鄙视原来的编辑器,结束了
43.List<T>可以看作对象的集合,在web开发中经常会用在显示列表的运算中
44.接口是单独的类型,不是从system.object继承的

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# 知识点集合的更多相关文章

  1. fullcalendar日历控件知识点集合

    1.基本的语法: 首先,fullcalendar和JQUERY一样,以面向对象的方式来组织代码.当然,这里的面向对象不过指能够把整个fullcalendar理解为一个类,这个类里包含有非常多的属性.方 ...

  2. php知识点集合

    ---------------------------------------------------------           PHP知识大全 ------------------------ ...

  3. 跟着刚哥梳理java知识点——集合(十二)

    Java集合分为Collection和Map两种体系 一.Collection接口: Collections接口为我们提供了以下方法: size():返回集合中元素的个数 add(Object obj ...

  4. iOS知识点集合--更改(2)

    3.nsmutablearray *a 如果直接赋值 a = @[@"d",@""]; 这个时候a 是不可变的 字典也是如此 2.如果接口调用错误的话 打印re ...

  5. lr_场景设计之知识点-集合点、loadgenerator

    1.controller原理 通过场景设计来模拟用户的真实操作并调用bugen中的脚本,再通过设置的压力机产生压力,在场景运行中实时监控用户的执行情况,tps,响应时间,吞吐量,服务器资源使用情况: ...

  6. iOS学习——iOS开发小知识点集合

    在iOS学习和开发过程中,经常会遇到一些很小的知识点和问题,一两句话就可以解释清楚了,这样的知识点写一篇随笔又没有必要,但是又想mark一下,以备不时之需,所以就有了本文.后面遇到一些小的知识点会不断 ...

  7. javascript 相关小的知识点集合

    本文主要是列出一些javascript 相关的,不限于javascript的,容易记错或者遗忘的小知识,小技巧. 1.javascript中的false 在 JavaScript,常见的 false ...

  8. crm作业知识点集合[三]

    知识点1 我们要实现一个这样的功能,在学生表中,可以查看每个学生的报名的班级的所有的成绩,就是下图的效果 1.首先我们需要在学生表中自定义一列,这一列的内容就是一个a标签,指向另外一个页面,而我们在另 ...

  9. crm作业知识点集合[二]

    知识点1 前面我们实现了这个功能,就是在models中如果有了choice选项,我们可以实现在页面显示这个chocice的value值,而不是key值,我们这个知识点就是在优化一下这个点 首先如果表中 ...

  10. crm作业知识点集合[一]

    知识点1 1.当我们通过model建立一对多或者多对多的关系的时候,默认情况下,会关联所有的字段,如果我们使用djanog的forms的话,可以加一个属性,限制我这个字段只关联哪些字段,就是用下面的写 ...

随机推荐

  1. tslib-触摸屏校准

    5.1移植tslib 5.1.1在https://github.com/kergoth/tslib下载最新的tslib 5.1.2为虚拟机里的Linux系统安装工具  sudo apt-get ins ...

  2. Qt中暂停线程的执行(主线程和工作线程共用一把锁,一旦主线程将它锁上,工作线程就无法运行了,这也是一个办法)

    在线程中定义一个信号量: QMutex pause; 把run()函数中循环执行的部分用信号量pause锁住:   void run()   {   while(1)   {   pause.lock ...

  3. DNS 隐蔽通道工具资料汇总

    http://www.cnblogs.com/bonelee/p/7651746.html DNS隧道和工具 内含dns2tcp.iodine.dnscat2工具的简单使用说明 iodine工具的使用 ...

  4. Tool-Java:Eclipse

    ylbtech-Tool-Java:Eclipse Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,E ...

  5. codeforces 712 Memory and De-Evolution

    2019-05-19 13:25:37 加油,加油,坚持,坚持!!! 一定要逆推,才可以是最少的次数 更好的方法: https://www.cnblogs.com/ECJTUACM-873284962 ...

  6. Springboot使用AOP实现统一处理Web请求日志

    1.要使我们自定义的记录日志能够打印出来,我们需要先排除springboot默认的记录日志,添加如下的设置 2.新建 resources/log4j.properties 我的设置为: # LOG4J ...

  7. Redis五种数据类型及应用场景

    MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加 ...

  8. mac下安装tesseract-OCR(Mac下还是有lib依赖的问题,有时间再解决)

    1.先下载需要的软件包 OCR工具:  Tesseract-OCR3.0.1  source code    tesseract-ocr-3.01.eng.tar.gz 破验证码用英文就够了. 图像处 ...

  9. 第6章 服务模式 在 .NET 中实现 Service Gateway(服务网关)

    上下文 您正在设计企业应用程序,该程序需要使用由其他应用程序提供的服务.该服务定义了一个合约,所有服务使用者要访问该服务都必须遵守该合约.该合约定义了与此服务通信所需的技术.通信协议和消息定义等内容. ...

  10. 【SQL】分析函数功能-排序

    1:排名,不考虑并列问题 row_number() 2:排名,有并列,并列后的排名不连续 rank() 3:排名,有并列,并列后的排名连续 dense_rank() 测试: SQL> creat ...