一、深入C#数据类型 

值类型传递和引用类型传递

方法的参数是值类型和引用类型

注意:值传递和引用传递判定依据是有没有ref

01.如果方法的参数类型本身就是引用类型,那么对参数值的修改会永久保存

例如:public void TP(SE se)

{

se.Count++;//真正的修改se对象的Count值

}

02.如果方法的参数类型本身是值类型,又没有ref修饰,那么对参数值的修改,不会永久保存()

03.如果方法的参数类型本身是值类型,但是有ref修饰,那么对象参数值的修改,也会永久保存。

值类型传递 :不带ref的参数传递

引用类型传递:带ref的参数传递

实例(经理评分)效果图如下:

关键代码如下:

二、使用集合组织相关数据

  

1、集合概念引入

集合:某些指定的对象集在一起就是集合

如下是一个Hello Kitty的集合

数组:可以存储相同数据类型的一堆数据的容器

三、集合中元素操作(添加,遍历,删除、常见错误)

3.常见属性:

Capacity:集合占用空间

Count:集合存储元素个数

4.常用方法:

添加:int Add(Object value) //添加一个对象到集合的末尾

遍历:通过foreach遍历

删除:Remove()、RemoveAt()和Clear()

*:注意事项:如果删除了集合中的某一个元素,那么集合的索引会自动维护

Remove():删除内容

RemoveAt():通过索引删除

Clear():一次性移除集合中所有的元素

Contains():是否包含某个元素

5、集合初始化器

ArrayList engineers = new ArrayList()

{

new SE(){Name = "周星星",Age = 26,

Gender = Gender.male,ID = "000",Popularity = 10},

new SE(){Name = "王贱贱",Age = 22,

Gender = Gender.female,ID = "111",Popularity = 20},

new SE(){Name = "周姐姐",Age = 30,

Gender = Gender.male,ID = "222",Popularity = 20}

};

6、HashTable

Hashtable 通常称为哈希表

根据键(Key)可以查找到相应的值 (Value)

★1.HashTable注意事项

01.HashTable类型的集合只能用foreach循环遍历

02.HashTable集合中元素时无序的(不会按照Add的顺序来展示元素内容)

03.HashTable中的key不能重复

04HashTabel没有RemoveAt()

★2.对HashTable遍历三种方案:

☆:第一种方式,遍历所有的keys,通过key的值获取value

☆:第二种方式:遍历所有的value集合

☆:第三种方式,同时遍历key和value

Eg:

foreach (DictionaryEntry item in table)

{

Console.WriteLine(item.Key + "value==" + item.Value);

}

7、泛型集合List<T>

泛型:就是为了约束ArrayList中元素类型,而制定的一个新的集合类型,该类型只能加入同一类型的多个元素,标识符<T>,可以看成是一个占位符,泛型是将运行时错误提前到了编译时

8、泛型集合Dictionary<K,V>

Dictionary<string,Person> dic=new Dictionary<string, Person>();

实例(员工签到)效果图如下:

关键代码如下:

知识小结项目(如图):

关键代码如下:

小学生之深入C#的更多相关文章

  1. 30道小学生四则运算题C/C++编程

    软件工程科课上,老师通过实例讲解什么是程序,程序和软件的区别,要求我们通过短时间写一道编程题, 题目就是编写30道小学生四则运算题.以下就是源代码: #include<iostream.h> ...

  2. CH BR8(小学生在上课-逆元和互质数一一对应关系)

    小学生在上课 总时限 11s 内存限制 256MB 出题人 jzc 提交情况 66/277 初始分值 600 锁定情况 背景 小学生在学校上数学课…… 描述 数学课上,小学生刚学会了乘除法.老师问了他 ...

  3. 小学生之使用Mybatis反向生成dao,entity,xml

    本小学生刚进公司的时候,就一顿装逼,不管别人问我啥我都会说:"会"!毕竟在公司吗,什么都要装,不要别人看出你的底细.不过有一天,听说用Mybatis可以反向生成dao(第一次听说) ...

  4. CH BR8(小学生放假了-clock()/CLOCKS_PER_SEC-斜率优化常错集锦)

    小学生放假了 总时限 26s 内存限制 256MB 出题人 zsyzzsoft 提交情况 16/150 初始分值 1500 锁定情况 背景 我们能见到的最可怕的事情,莫过于小学生放假了! 描述 小学生 ...

  5. 【百度地图API】小学生找哥哥——小学生没钱打车,所以此为公交查询功能

    原文:[百度地图API]小学生找哥哥--小学生没钱打车,所以此为公交查询功能 任务描述: 有位在魏公村附近上小学的小朋友,要去北京邮电大学找哥哥.他身上钱很少,只够坐公交的.所以,百度地图API快帮帮 ...

  6. 小学生四则运算(java编程)201571030135

    任务1源码在Github的仓库主页链接地址: https://github.com/zhanghh2018/Four-primary-school-pupils 需求分析: 作业总体效果:随机产生n道 ...

  7. 实验七 《FBG》—-小学生课后习题答案原型设计

    一.实验目的与要求 1.掌握软件原型开发技术 2.学习使用软件原型开发工具 二.实验内容与步骤 1.开发工具: 使用的工具:墨刀(APP端开发原型) 工具简介: 墨刀(MockingBot)是一款简单 ...

  8. 小学生噩梦——四则运算题库(python 全功能实现)

    Github: https://github.com/holidaysss 小组:龙天尧(代码实现),林毓植(浮点转分数函数,代码审查) PSP2.1 Personal Software Proces ...

  9. 小学生都看得懂的C语言入门(1): 基础/判别/循环

    c基础入门, 小学生也可以都看得懂!!!! 安装一个编译器, 这方面我不太懂, 安装了DEV-C++  ,体积不大,30M左右吧, 感觉挺好用,初学者够了. 介绍下DEV 的快键键: 恢复 Ctrl+ ...

  10. 小学生都能看懂的FFT!!!

    小学生都能看懂的FFT!!! 前言 在创新实践重心偷偷看了一天FFT资料后,我终于看懂了一点.为了给大家提供一份简单易懂的学习资料,同时也方便自己以后复习,我决定动手写这份学习笔记. 食用指南: 本篇 ...

随机推荐

  1. Spring4.0学习笔记(6) —— 通过工厂方法配置Bean

    1.静态工厂方法: bean package com.spring.factory; public class Car { public Car(String brand) { this.brand ...

  2. 15 3Sum(寻找三个数之和为指定数的集合Medium)

    题目意思:给一个乱序数组,在里面寻找三个数之和为0的所有情况,这些情况不能重复,增序排列 思路:前面2sum,我用的是map,自然那道题map比双指针效率高,这道题需要先排序,再给三个指针,i.j.k ...

  3. 网易DBA私享会分享会笔记2

    mysql索引与查询优化什么是索引?索引其实是一个目录.通过各种数据结构实现,是(值=>行位置)的映射 索引的作用:1.提高访问速度2.实现主键.唯一键逻辑 索引使用场景数据量特别大的时候,进行 ...

  4. [Struts2学习笔记] -- 自定义类型转换

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  5. SQLServer -- 递归查询树结构表

    需求 查询树结构表(如菜单类型表,文件夹类型表等)中一个数据节点下所有的子节点数据 声明临时表,并写入数据如下 DECLARE @tbl TABLE ( Id INT ,ParentId INT ,N ...

  6. javasript生成 uuid的几种算法分享

    方式一 function uuid() { var s = []; var hexDigits = "0123456789abcdef"; for (var i = 0; i &l ...

  7. HTTP 代理原理及实现

    本文转载自 https://imququ.com/post/web-proxy.html HTTP 代理原理及实现(一) 文章目录 普通代理 隧道代理 Web 代理是一种存在于网络中间的实体,提供各式 ...

  8. 转:mysql5.6.12 for Linux安装

    原文链接:http://mmicky.blog.163.com/blog/static/1502901542013635317349/ 1:上www.mysql.org下载64位版本mysql5.6. ...

  9. 通过示波器分析TypeB卡通讯数据

    这几天,使用NFC芯片模拟了一张TypeB的cpu卡,在调试过程中,因为要检查射频性能,所以用示波器抓取了RFID读卡器和TypeB CPU卡之间的通讯数据.READER发送的数据位106K ASK调 ...

  10. 【转】 Ubuntu samba服务器搭建及测试--不错

    原文网址:http://blog.csdn.net/longfeey/article/details/5937968 Ubuntu samba服务配置是很不错的文件应用很有学习价值, 这里我主要讲解U ...