VC#复习资料

news2024/11/24 2:01:05

一、选择题

2、“闪电”图标

3、using命名空间

命名空间的设计目的是提供一种让一组名称与其他名称分隔开的方式,using 关键字表明程序使用的是给定命名空间中的名称,使用 using 命名空间指令,这样在使用的时候就不用在前面加上命名空间名称。该指令告诉编译器随后的代码使用了指定命名空间中的名称。

//没有使用using
//first_space;second_space我们都没有using;其格式为:命名空间.类
using System;
namespace first_space
{
   class namespace_cl
   {
      public void func()
      {
         Console.WriteLine("Inside first_space");
      }
   }
}
namespace second_space
{
   class namespace_cl
   {
      public void func()
      {
         Console.WriteLine("Inside second_space");
      }
   }
}  
class TestClass
{
   static void Main(string[] args)
   {
      first_space.namespace_cl fc = new first_space.namespace_cl();
      second_space.namespace_cl sc = new second_space.namespace_cl();
      fc.func();
      sc.func();
      Console.ReadKey();
   }
}

 

//使用using
//就可以省略命名空间的“名字”了,直接调用里面的类
using System;
using first_space;
using second_space;
 
namespace first_space
{
   class abc
   {
      public void func()
      {
         Console.WriteLine("Inside first_space");
      }
   }
}
namespace second_space
{
   class efg
   {
      public void func()
      {
         Console.WriteLine("Inside second_space");
      }
   }
}  
class TestClass
{
   static void Main(string[] args)
   {
      abc fc = new abc();
      efg sc = new efg();
      fc.func();
      sc.func();
      Console.ReadKey();
   }
}

//注意:因为我们using System,所以我们可以只写:
Console.WriteLine ("Hello there");
//我们可以写完全限定名称,如下:
System.Console.WriteLine("Hello there");

综上,我们使用using 命名空间后,可以简写一部分内容

5、Main()方法

需要大写

6、数据类型

值类型直接存储其值,而引用类型存储对其值的引用【类似于指针】

值类型(value type):byte,short,int,long,float,double,decimal,char,bool 和 struct 统称为值类型。值类型变量声明后,不管是否已经赋值,编译器为其分配内存。

引用类型(reference type):string 和 class、interface、delegate、object、数组统称为引用类型。当声明一个类时,只在栈中分配一小片内存用于容纳一个地址,而此时并没有为其分配堆上的内存空间。当使用 new 创建一个类的实例时,分配堆上的空间,并把堆上空间的地址保存到栈上分配的小片空间中。

(1)值类型变量的操作只影响存储在变量中的值类型实例,就是我们一般的操作

//写一个伪代码
int a=10;
int b=a;
b=5;

最终值为:a=10,b=5;

(2)引用类型变量 。就是和指针差不多【类比,但不是】,看如下的操作

 

我们发现当更改SC2.num的值时,SC1.num也跟着改变了

介绍一下一些数据类型。

decimal(高精度浮点数)、struct(结构体)、byte(无符号的8位整数)

8、int字节

int 4个字节

9、unit关键字

C#中, uint是一个关键字,用于声明一个变量,该变量可以存储值的整数类型(无符号整数)

10、string

C#中的string是System.String的别名,继承与System.Object。

所以string就是一个引用类型。引用类型一般是类。

12、运算符

^ 异或

C#没有乘方运算符,想要乘方。Math.pow()

& 与  

字符连接,直接使用'+'即可

 

14、非零即真的问题

C#语言的布尔类型变量,其赋值只能是true和false,所以非0即true并不存在于C#中

15、数组

声明数组 int[] x; //声明一个int[]类型的变量(无法指定大小)

定义数组:

数据类型[] 数组名=new 数据类型[数组长度];
数据类型[] 数组名=new 数据类型[数组长度]{元素1,元素2…};
数据类型[] 数组名=new 数据类型[]{元素1,元素2…};
数据类型[] 数组名={元素1,元素2…};

 搞清楚什么是声明;什么是定义

16、Length

array.Length是数组的长度,只读的。

17、二维数组

二维数组声明:数据类型[,] 数组名       int[,] array;

二维数组定义:

  • 数据类型[,] 数组名 = new 数据类型[第一维长度,第二维长度]

int[,] arr= new int[50,3];

  • 数据类型[,] 数组名 = new 数据类型[,]{数组值};

int[,] arr= new int[,]{{1,0,1},{3,0,5}};

  • 数据类型[,] 数组名 = {数组值};

 int[,] arr= {{1,0,1},{3,0,5}};

所以不合法,行列都要写清楚

18、数组初始化

动态初始化

  • 数据类型[] 数组名=new 数据类型[数组长度];
    • 此时数组中每一个元素都是为默认值
      • int的默认值0
      • float的默认值0
      • bool的默认值false
      • char的默认值‘\0’,表示空字符
      • string的默认值""

 21、switch

switch(控制表达式){

        case 常量:

                语句...;

                break;

        case 常量:

                语句...;

                break;

        default:

                语句;

}

//控制表达式,其结果只能是整型或字符型、字符串型

//case 后的常量必须不同

//常量         

常数     或        常数计算表达式(编译时是知道结果的)

所以case后为变量是错的

switch变量可以是string,只要符合最终控制表达式结果即可

26、类

类里的字段和方法如下

 27、this

this代表当前实例,用this.显式调用一个类的方法和成员

namespace Demo
{
  public class Test
  {
    private string scope = "全局变量";
    public string getResult()
    {
      string scope = "局部变量";
       // 在这里,this代表Test的实例,所以this.scope指向的是全局变量,scope所访问的是局部变量
      return this.scope + "-" + scope;
    }
  }

  class Program
  {
    static void Main(string[] args)
    {
      try
      {
        Test test = new Test();
        Console.WriteLine(test.getResult());
      }
      catch (Exception ex)
      {
        Console.WriteLine(ex);
      }
      finally
      {
        Console.ReadLine();
      }

    }
  }

28、构造方法

作用:构造方法用来创建对象,并且在构造方法中对对象进行初始化

返回:构造函数是一种特殊的函数,负责创建该类的实例对象。一般用new + 构造函数。可以认为构造函数的返回值类型就是该类本身。就是没有返回的意思【不是void】

特殊要求:

  1. 没有返回值,不需要写类型,连void都不要写。
  2. 构造方法的方法名,与类名要相同

//一个类里的构造方法
class Person
{
        //构造方法
        public Person(string name)
        {
            this.Name = name;
            this.Age = age;
            this.Sex = sex;
            this.Chinese = chinese;
            this.Math = math;
            this.English = english;
        }

        //字段
        private string Name;

}
//使用构造方法
class Program
    {
        static void Main(string[] args)
        {
            //创建小明对象
            Person p1 = new Person("小明");
        }
    }

29、访问父类成员(属性、方法、构造方法):base

构造方法调用

方法调用

// 父类
public class Father
{
    public String name = "小头爸爸";
    public void TellName()
     {
         Console.WriteLine("My name is {0}.",name);
     }
}
// 子类
public class Son:Father
{
    public new String name = "大头儿子";
    public new void TellName()
     {
         Console.Write("Father Told: ");
         base.TellName();
         Console.WriteLine("My Father's name is {0}",base.name);
         Console.WriteLine("My name is {0}.", name);
     }
}

 

30、object

所有类的最终基类:Object

当一个类没有指明父类时,则相当于继承于object类。也就是说,object类是最有类的最终父类。

所有类的最终基类:Object 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/144414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

golang学习

由于期末考试没时间学算法学了一波go放松一下 这可能是我学语言最认真的一次了( 跟的是尚硅谷学完的 二倍速快进 折腾了一周左右 网络编程部分没看 因为不懂计网 不想学( 虽然已经很老的课了 但是顺平老师雀氏讲的太细了也是听完了自己也没时间写笔记 …

QT5.14.2编译mysql-5.7.25 32位驱动办法

开发环境:Windows10QT5.14.2MySQL5.7.25 编译步骤: 1、下载安装mysql压缩包,下载地址为:https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.25-win32.zip 也可以打开MySQL :: Download MySQL Community Server (Archived Ve…

Electron主进程渲染进程间通信的四种方式

在electron中进程使用 ipcMain 和 ipcRenderer 模块,通过开发人员定义的“通道”传递消息来进行通信。新的版本中electron推荐使用上下文隔离渲染器进程进行通信,这种方式的好处是无需在渲染进程中直接使用ipcRenderer发送消息,这种在渲染进程…

JWT令牌入门

上篇文章我们写了如何登录,我们着重学习Token模式下的单点登录 一、访问令牌的类型 透明令牌,是客户端存储一段引用数字,然后到达服务器指向服务器中特定的令牌 类似于,cookie中存储了sessionId他们之间的关系 自包含令牌&#x…

猿代码超算实习生,五步助力拿到高薪offer

虽说行行出状元,但是一旦入错行,那就是一辈子的事。互联网的潮水已经退去,普通人再进入也只是勉强温饱。与其朝不保夕的被裁员,倒不如提前锁定未来30年的幸福。 20大以来,芯片国产化、超算(先进计算&#…

docker的run,cmd,entrypoint分析和对比

写在前面 本文一起看下Dockerfile中经常用到的几个类似命令,RUN,CMD,ENTRYPOINT。 1:容器是怎么来的? 想要有容器我们就必须先创建镜像,而想要有镜像,我们则必须写一个用来描述想要创建的镜像…

Struts2基本架构

Struts2基本架构1、Struts2执行流程2、web.xml配置3、Action控制器3.1、核心控制器3.2、业务控制器4、Result配置5、struts.xml核心配置5.1、constant元素5.2、package元素5.3、配置文件加载顺序1、Struts2执行流程 如下例子: 执行流程如下: 浏览器将请…

Python Flask开发笔记

Python Flask开发笔记一、创建flask项目1.开发环境:2.安装Flask3.使用pycharm,创建flask项目二、flask介绍1.介绍初始flask主程序接口文件2.Flask() 类1.Flask参数解释0.sys.modules用于缓存程序导入模块名1.import_name 主程序模块名2.static_url_path …

IconJar - Mac 上的一款多功能图标素材管理工具

IconJar - Mac 上的一款多功能图标素材管理工具 IconJar 是一个多功能的图标管理工具,由世界各地的设计师和开发人员使用。在一个应用程序中搜索、组织、预览和检索图标,而不是创建大量的文件夹来存储你的收藏。这款应用针对黑暗模式进行了优化&#xff…

2022年自动化测试工具汇总——实用的功能测试工具篇

如今,UI自动化测试工具就和雨后春笋般,层出不穷。由于每种工具都有自己的重点和策略,所以总是让人无从下手。今天我们来对比现在使用比较广泛的几个UI自动化测试工具,来看看他们之间的优缺点。 首先,我们先简单介绍一下…

4.6.4、边界网关 BGP 的基本工作原理

1、力求寻找较好的路由 因特网采用分层次的路由选择协议 内部网关协议(例如:路由信息协议 RIP 或开放最短路径优先 OSPF) 它们都是设法使分组在一个自治系统内尽可能有效地从源网络传输到目的网络无需考虑自治系统外部其他方面的策略 外部…

内网渗透-src挖掘-外网打点到内网渗透-3层内网渗透测试记录-2023年1月

1、通过信息搜集,发现目标有一个外网访问的通达OA系统 2、通达OA的漏洞是非常多的,这里利用大佬写好的通达OA一键getshell工具 成功获取webshell 3、连接webshell,上传cs马儿到服务器 4、执行获取主机权限 成功上线 5、通过Ladon插件发…

百分之80新手都不知道,SEO搜索引擎优化【sitemap网站地图 配置】

Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的 Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度为何等&am…

浅析oauth2.0及应用场景

讲OAuth2.0之前,我们先理解一个概念,授权用户和资源权限的概念授权用户:用户访问某个应用系统,该应用系统请求认证中心授权以获取这个登录用户的信息,但并没有得到这个用户的密码,这个就是OAuth2.0实现的要…

N个点,求距离最近的两个点---分治策略(1)

设平面有n个点的直角坐标是,i 1, 2, ...,n,求距离最近的2个点,距离计算: 首先这个问题是可以使用蛮力算法,一共n(n-1)/2个点对,每对点对计算需要常数的时间,蛮力算法需要的时间。 由于点对有二维的空间坐标&#xf…

(三十)Vue之回顾本地存储webStorage

文章目录webStorageLocalStoragesessionStorage改造TodoList案例为本地存储Vue学习目录 上一篇:(二十九)Vue之组件化编码流程 下一篇:(三十一)Vue之自定义事件 webStorage 使用HTML5可以在本地存储用户…

Python基础(二十二):文件操作

文章目录 文件操作 一、文件操作的作用 二、文件的基本操作 1、文件操作步骤

同时开启的revit模型和navisworks如何同步呢?

一、 Navisworks与Revit同步问题 同时开启的revit模型和同时开启的navisworks如何同步呢? 1.如图1所示打开了一个revit模型 将模型保存在指定的路径上,然后通过直接拖拽的方式在navisworks manage打开模型文件,过程中会出现读条状态,如图2所…

【MySQL进阶教程】 索引使用与设计原则

前言 本文为 【MySQL进阶教程】 索引使用与设计原则 相关知识,下边将对索引的使用(包括:验证索引效率,最左前缀法则,范围查询,索引失效情况,SQL提示,覆盖索引,前缀索引&a…

Struts2获取表单数据

Struts2获取表单数据Struts2获取表单数据1、原始Servlet方法2、属性封装3、表达式封装4、模型驱动封装Struts2获取表单数据 在Struts2中获取表单数据或提交路径的参数值的方式有4种。如下: 原始Servlet方法属性封装表达式封装模型驱动封装 1、原始Servlet方法 该…