.NET知识点总结一(笔记整合)

1.   .net framework原理简介,C#程序的两次编译

  .NET源代码——>语言编译器(第一次编译)——>MSIL+元数据(exe文件)——>CLR(公共语言运行时——类似于jre)——>机器代码(第二次编译)——>代码被执行

2.Main函数是什么?在程序中使用Main函数有什么需要注意的地方?

程序的入口函数!函数名字不能改变;一个程序中有且只有一个Main函数。

3.CLR是什么?程序集是什么?当运行一个程序集的时候,CLR做了什么事情?

Common Language RunTime 公共语言运行时。(类似于jre)

编译后代码的集合。(包括exe和dll)。 加载项目里所有的类到内存,并找到其中的主函数,并作为默认的启动函数调用执行。

4.值类型的默认值是什么?(情况一:字段或全局静态变量;情况二:局部变量)

如果是全局变量,并且没赋值,就会有默认值,如:int 是0;bool 是false;枚举enum;结构体struct;

如果是局部变量,就必须手动赋值。

5.声明一个变量时在内存中做了什么事情?初始化一个变量的时候又在内存中做了什么事情?

在栈中开辟空间,并将变量放入空间里,默认值都是null。

初始化时:

如果是值类型,则直接放入栈中;

如果是引用类型,则在堆中开辟一块空间,将堆中对象的地址指针放入栈中

6.new关键字做的事情?

开辟空间,创建对象,调用构造函数,返回堆地址。

   还可以显示的隐藏父类的同名方法。

7. 数组一旦创建后,能不能修改数组的长度?

不能。因为数组是引用类型。它在创建时,已经根据创建的长度在内存中开辟一块连续的空间。

8.多维数组——>本质就是一个一位数组,只不过访问的 时候需要使用多个下标访问

1)、如何声明一个多维数组?

多维数组string[,] strArr=new string[3,3];

 2)、如何获取多维数组的总长度

各个纬度元素的个数的乘积

9.交错数组

  • 如何声明一个交错数组?

交错数组:int[][] arr=new int[3][3];

  • 交错数组的本质是什么?

本质是一个数组的数组。简单的说这个数组的元素是一个数组。

10.方法

  • 为什么要有方法?

    为了提高代码的可重用性,实现复用(实现封装)

  • 如何实现方法的重载

    方法名相同,但参数列表不同,与返回值无关

  • 引用参数“ref”和输出参数“out”的相同点与不同点

    相同点:传递的都是(栈)引用

    不同点:

      1.out侧重于输出;ref侧重于修改;

      2.out必须在方法返回之前赋值,ref必须在传入之前赋值。

11.面向对象的三大特征:

封装、继承、多态

12.类与对象的关系

  类是抽象的,一个具有相同特征或相同行为的事物的集合(类是一组具有相同数据结构和相同操作的对象的集合)。(如人类)

  对象是类中的一个具体的个体。(如一个人就是一个人类的对象)

  简而言之就是:类是对象的抽象描述,而对象是类的具体化。

13.创建某一个类的对象的时候,在内存中做了什么事情?(例如:Person p = new Person();)

  开辟空间,创建对象,调用构造函数。(在内存的堆栈中开辟空间,创建Person对象,然后在内存的栈中开辟一个空间放一个p,然后将Person对象在堆中的引用地址赋值给对象P)

14.属性的存在的目的是什么?

  封装字段。为了字段的操作设置规则。其实在本质上就是两个方法,一个get方法个一个set方法

15.访问修饰符

  public:公有的,在任何类中使用

   private:私有的,在本类中使用

   protected:受保护的,在本类及派生类中使用

   internal:内部的,在namespace中使用

  extern:供外部访问(C#提供接口给C++访问)

16.为什么要有构造函数

  其目的主要是方便程序员在实例化对象的时候就为对象里的一些属性和字段初始化赋值

17.什么是封装?封装有何目的?

  封装就是将对象的字段、行为和功能等“整合”到一起,以方便使用

  封装的目的:隐藏代码的实现,实现代码重用,方便修改以及维护

18.类以及变量的命名规则是什么?

  类:首字母大写(帕斯卡命名规则)

  变量:首字母小写(骆驼命名规则)

.NET知识点总结一(笔记整合),布布扣,bubuko.com

时间: 2024-10-12 07:52:55

.NET知识点总结一(笔记整合)的相关文章

.NET知识点总结二(笔记整合)

19.什么是类型? 用来定义某一种数据在内存里开辟空间的大小,还可以预置操作此种类型数据的相关方法 20.this关键字在方法中使用时所代表的含义 this指的是当前类的对象,或者父类的类的对象(base只能指向父类的对象) 21.里氏替换原则 子类替换父类所在的位置 22.C#中的数据类型 值类型 简单类型(数字类型(int,short,long,float,double),字符(char),逻辑值(bool)),结构体(struct),枚举(enum) 引用类型 字符串(string),数组

Docker学习教程笔记整合(完整)

Docker学习教程笔记整合(完整) 本文主要是整理了DockerOne组织翻译的Flux7的Docker入门教程,通过markdown记录,方便离线学习.原文地址,http://dockone.io/article/101. 文中一些链接可能会跳转国外的网站,如果没有插件或开VPN的朋友,可以尝试修改一下Hosts文件,如何修改Hosts文件.或者使用XXNet插件,如何使用XXnet 介绍 Docker是一个新的容器化的技术,它轻巧,且易移植,号称"build once, configure

DotNET知识点总结四(笔记整合)

1.枚举:本质是类 如果为第一个枚举赋了一个int值,那么后面的枚举项依次递增 可以将枚举强转成他所代表的int值 C#的枚举项都是常量(可以用Reflector查看literal的IL源码) 因为枚举项都有对应的int值,所以Switch把他当成int看 不能定义方法.属性.事件 多个枚举有相同数值时,数值强转时,会返回其中最后一个枚举项 2.IEnumerable接口 只要实现了该接口,就可以使用foreach进行遍历.foreach循环的本质就是调用这个接口返回一个迭代器,调用迭代器的Mo

DotNET知识点总结五(笔记整合)

1.委托:通常指的是 多播委托 通常的说,委托就是一个存放方法指针的容器,是一个安全的函数指针,供程序员安全调用.委托的本质就是一个类,继承于MulticastDelegate——>Delegate,在Delegate类中有一个IntPtr类型的变量来指向该方法的指针. 通常当方法传递的参数为一个方法时,就用委托. 委托能够将方法作为参数传递,(多播委托)调用一个委托,执行N个方法 2.集合排序 1.Reverse()方法直接反转排序 2.冒泡排序 int temp = 0; for(int i

DotNET知识点总结三(笔记整合)

使用接口的注意事项: 接口中的成员不能加访问修饰符 接口中的成员不能有任何实现 实现接口的子类必须实现接口的全部成员 一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口IA,那么在语法上A必须写在IA的前面,因为类是单继承的,而而接口可以多实现 显式实现接口和隐式实现接口时需要注意的问题(我们通常是隐式实现的) 类实现接口,可以显式实现接口里的方法,但是注意:一旦使用显式实现接口里的方法,那么该方法只能被接口变量调用 IFlyable fly = new Bird

ssh笔记整合

1.整合Spring和Hibernate框架JBOA数据库设计1.部门表2.雇员表3.职位表4.报销单表5.报销单明细表6.审核记录表2.SSH架构 1.Struts 2+Spring+Hibernate 2.以Spring作为核心框架,数据持久化使用 Hibernate完成,表现层使用Struts 2 3.Spring提供对象管理.面向切面编程等实用功能 4.通过Spring提供的服务简化编码.降低开发难度.提高开发效率 1.整合思路 1.逆依赖方向而行.由spring提供对象管理和服务 2.

Spring笔记⑥--整合struts2

Spring如何在web应用里面用 需要额外加入的jar包 Spring-web-4.0.0 Spring-webmvc-4.0.0 Spring的配置文件,没什么不同 ? 需要在web.xml下配置,使用myeclipse2014可自动生成 ? <!-- 启动ioc容器的servletcontextLin --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListen

Spring笔记⑤--整合hibernate代码测试

String整合hibernate代码测试 在上节生成的表中插入数据: ? 注意:使用myeclipse2014生成的整合项目可能存在问题需要我们自己导入. ? 第一步 我们写dao接口 package com.ssh.spring_hibernate.dao; ? public interface BookShopDao { ????//根据书号获取数的单价 ????public int findBookPriceByIsbn(String isbn); ???? ????//更新书的库存,使

java中的字节流的知识点---IO学习笔记(二)

IO流: 包括字节流和字符流. 在这里解释一下我对于流的理解,其实流就相当于一个用来运输字节或者字符的管道,一开始会把所有的数据存放到流中,然后我们再从流中取出数据(进行读取或者写出操作),每读或者写一次就会从管道中把读或者写的数据取出来,管道中就没有了你刚才读到或者写出的数据了.比如: FileInputStream fis = new FileInputStream(String filename); 就会把文件名为filename的文件内容全部存放到管道中去,然后我们进行fis.read(