.NET基础复习一

1. int [] arrInt = new int[5] ;
等号左边开辟了一个小的栈的空间、等号右边在堆空间开辟了5个空间,会将堆里开辟的第一个空间给地址赋值给栈里的空间
   string [,] productList = new string [2,5];
   productList[0,0] ="1号";
   productList[1,0] ="88元";
   productList[0,1] ="2号";
   productList[1,1] ="99元";

遍历数组 如果是1维数组 for(int i=0;i<productList.Length;i++){}
         如果遍历2维数组 

static void Main(string[] srts)
{
double myMoney="30000";
 BuyStuff("苹果",out double myMoney);
}

static double BuyStuff (string proName, out double money){
for(int i=0;i<productList.getLength(0);i++){

 if(productList[0,i] == proName){
    double proPrice = Convert.ToDouble(productList[1,i]);
    return (money-proPrice);
}
}
}

这个地方设计到返回值有2个 一个是商品一个是剩余的钱

ref :引用传参
out : 输出传参 在使用之前必须复制
out参数的特点:
      在方法中使用之前,必须赋值。
      在方法中返回之前,必须赋值。  

 double myMoney="30000";
 BuyStuff("苹果",ref double myMoney); 

 static string BuyStuff(string proName,double money)
{
  money = money - "花的钱";
  //等号右边先执行, 先通过money找到在栈中的引用值,再拿应用的值去减掉花的值
  // 再将结果返回给 ref 的myMoney;
}           

ref 和 out  区别

相同点:凡是使用out/ref修饰的参数,传递的都是引用。
不同点:
  out关键在侧重输出参数,也就是我调用你的方法,是为了通过输出参数的方式获得值(return值也是为了通过方法获得值):通常在方法需要返回多个值的时候使用。
  通常在方法需要返回多个值的时候使用。
  所有,out参数必须在方法返回之前(结束之前)赋值。

 ref侧重于修改,也就是我调用你这个方法,并传入参数的目的是为了再方法中修改传入的这个变量。
   所以,ref参数必须在传入之前就赋值。

2. 方法(函数):重用 静态方法[static] 可以通过类名来调用 Console.ReadLine(); public static class Console{}  Console 静态类; Console.WriteLine(这个种有19个方法)可以充分展现出方法重载 方法名相同方法的参数类型 和 个数不同; 

3. return 为方法返回值、同事可以立即退出程序。break 退出当前循环、 continue 退出本次循环。

4. void 无类型无返回值;接受返回值的方法: 接受变量的类型 必须和返回值的一致。

5. 栈 和 堆 的特点

   栈:栈的空间小,但是访问的速度快
   堆:堆的空间大,但访问的速度慢
   New 关键字 :
               1.在堆中开辟一块空间;
               2.创建对象
               3.调用构造函数

6. params 可变参数
   特点:
        1.可以直接传数组进去的、 也可以直接传 和 参数数组同类型的元素进去

        2.可变参数 在一个方法的参数列表中 方法的参数列表中可变参数只能有一个
                   这仅有的一个可变参数 必须在参数列表最后                          
时间: 2024-08-28 08:17:39

.NET基础复习一的相关文章

C++基础复习

一. C++与C的比较: C语言是一个结构化语言,它的重点在于算法和数据结构,C语言的设计首先要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到的输出(或实现过程(事物)控制). C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事物)控制. 所以C语言和C++的最大区别在于它们解决问题的思想不同,一个面向过程一个面向对象. C++对C的"增强",表现在六个方面: 1.类型检测更为严格. 2.

温故知新,基础复习(快速排序及优化)

温故知新,基础复习(快速排序及优化) 使用了三值取中和插排优化 #include<stdio.h> #define InsertSortNumber 10 void InsertSort(int Arra[],unsigned int LowIndex,unsigned int HighIndex) { printf("low=%d,high=%d\n",LowIndex,HighIndex); for (unsigned int i = LowIndex + 1; i &

温故知新,基础复习(二叉堆排序)

温故知新,基础复习(二叉堆排序) 最小堆(最终数组的数据是降序),最大堆(最终数组的数据是升序) 下例是最小堆 #include <stdio.h> #include <stdlib.h> void Swap(int Arra[],unsigned int LeftIndex,unsigned int RightIndex) { int TeampValue = Arra[LeftIndex]; Arra[LeftIndex]=Arra[RightIndex]; Arra[Righ

温故知新,基础复习(一个有序从大到小不重复的数列,任意给出一个sum值,求出数列中所有满足和为sum的数对)

温故知新,基础复习(一个有序从大到小不重复的数列,任意给出一个sum值,求出数列中所有满足和为sum的数对) #include<stdio.h> #include<stdlib.h> void PrintSumNumbers(int Arra[],int ASize,int Sum) { //O(1) if (ASize<2) { printf("The size of the Arra is invalid.\n"); return; } if(Sum&

软件开发技术基础复习要点

软件开发技术基础复习要点 1.生存周期: 指一个软件从提出开发要求开始,经过需求分析.设计.制造.调试.使用.维护,直到软件产品被淘汰为止的整个过程. 2.简述软件工程的基本原理: 用分阶段的生命周期计划严格管理: 坚持进行阶段评审: 实行严格的产品控制: 采纳现代程序设计技术: 结果应该能清楚地审查: 开发小组应小而精: 承认不断改进软件工程实践的必要性. 3.简述产生软件危机的原因和解决办法: 原因:开发软件所需的高成本与软件产品的低质量之间存在尖锐的矛盾,致使软件开发陷入循环之中,即研制软

JS基础复习

js基础语法 Netcape js基础语法规范(ECMAScript1,2,3,3.1,5(IE9),6   ES    ES6=es2015) DOM BOM BOM :是由浏览器厂商各自实现的,所以差异比较大 DOM:相关的规范  是由W3C维护的 Node的优势  没有浏览器的兼容性问题 前端项目尽量不要使用ES6,需要考虑兼容性问题 --------------------------------数据类型--------------------------- 1.数据类型分类: 基本数据

c# 基础复习1

1. 类和对象 1.1 类和对象的概念 类:对象的类型,它不同于 int 等基本数据类型,因为类具有行为:也可以说是具有相 同特征和行为的一组对象的集合. 对象:对象是一个个你能看得见,摸得着的实体,是实实在在的事物,具有相同特征和 行为的对象可以抽象成类. 1.2 定义类的语法 [modifier] class ClassName { //[field,Method] } 1.3 如何创建对象 ClassName name=new ClassName(); 1.4 命名空间: 作用:用于管理类

Java 笔记之基础复习

1.& 与 &&的区别 两个都有逻辑与的功能.但是所不同的是,当&两边的表达式不是boolean类型的时候,&具有位与的功能:&&是短路与,当判断到前一个表达式为false的时候,将不会再去计算后面的表达式. 如: int i = 0; System.out.println((1==0)&(0==(i++))); System.out.println(i); 输出是: false 1 但是, int i = 0; System.out.pri

sql基础复习

--1.while循环 declare @sum int declare @i int set @i=1 set @sum=0 while(@i<101) begin set @sum [email protected]+@i set @[email protected]+1 if(@i>90) print @i end print @sum --2.goto语句 declare @num int set @num=100 flag: print @num select @[email pro

Java基础复习笔记系列 四

Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时,不能指定其长度.不同于C 数组的小标可以是整型常量或整型表达式. .length方法是显示数组的长度:数组.length;String.length();一个是属性,一个是方法.注意区分. 2.数组的内存分析? Array a[]; a = new Integer(15); /*这个a在栈中,在堆