详解C#中三个关键字params,Ref,out
作者:RynerLute 发布时间:2021-09-25 18:54:02
标签:c#,params,ref,out
关于这三个关键字之前可以研究一下原本的一些操作
using System;
using System.Collections.Generic;
using System.Text;
namespace ParamsRefOut
{
class Program
{
static void ChangeValue(int i)
{
i=5;
Console.WriteLine("The ChangeValue method changed the value "+i.ToString());
}
static void Main(string[] args)
{
int i = 10;
Console.WriteLine("The value of I is "+i.ToString());
ChangeValue(i);
Console.WriteLine("The value of I is " + i.ToString());
Console.ReadLine();
}
}
}
观察运行结果发现
值并没有被改变,也就是说此时的操作的原理可能也是跟以前C语言的函数操作是一样的
本文主要讨论params关键字,ref关键字,out关键字。
1)params关键字,官方给出的解释为用于方法参数长度不定的情况。有时候不能确定一个方法的方法参数到底有多少个,可以使用params关键字来解决问题。
using System;
using System.Collections.Generic;
using System.Text;
namespace ParamsRefOut
{
class number
{
public static void UseParams(params int [] list)
{
for(int i=0;i<list.Length;i++)
{
Console.WriteLine(list[i]);
}
}
static void Main(string[] args)
{
UseParams(1,2,3);
int[] myArray = new int[3] {10,11,12};
UseParams(myArray);
Console.ReadLine();
}
}
}
2)ref关键字:使用引用类型参数,在方法中对参数所做的任何更改都将反应在该变量中
using System;
using System.Collections.Generic;
using System.Text;
namespace ParamsRefOut
{
class number
{
static void Main()
{
int val = 0;
Method(ref val);
Console.WriteLine(val.ToString());
}
static void Method(ref int i)
{
i = 44;
}
}
}
3) out 关键字:out 与ref相似但是out 无需进行初始化。
以上所述是小编给大家介绍的C#中三个关键字params,Ref,out网站的支持!


猜你喜欢
- 在redirect重定向的时候携带参数问题SpringMVC 中常用到 redirect来实现重定向。但使用场景各有需求,如果只是简单的页面
- 最近项目里面有个地方是在前面用glide加载图片后,后面再另外一个地方加载相同图片时没有复用glide的缓存,而是自己另外又重新缓存了一套。
- import android.provider.Settings.Secure;private String android_id = Se
- 问题描述:eclipse启动tomcat时,不能加载web项目,但是把war包丢进tomcat的webapps下是能正常运行的解决方式:右键
- 1、先使用tiledmap编辑地图,图层用来刷图块,对象用来定义单个格子的数据2、为每个图块调属性 3、图块需要单独配置属性的就必
- 一.理论准备KMP算法为什么比传统的字符串匹配算法快?KMP算法是通过分析模式串,预先计算每个位置发生不匹配的时候,可以省去重新匹配的的字符
- 本文主要解决以下几个问题:我们都知道Android的刷新频率是60帧/秒,这是不是意味着每隔16ms就会调用一次onDraw方法?如果界面不
- Android Studio 是谷歌基于IntelliJ IDEA开发的安卓开发工具,有点类似 EcliPSe ADT,Android St
- AOP是Spring中的面向切面的编程,这里简单感受一下如何在xml文件中配置一个切面。如上图所示,配置一个切面的主要思路有以下几个步骤。1
- 通过URL来获取网络资源并下载资源简单实例:package com.android.xiong.urltest; import java.i
- 一、常规形式1 项目结构2 配置文件及环境设置(1)配置文件# 应用服务 WEB 访问端口server.port=8080# spring
- 一、TimeZone 简介TimeZone 表示时区偏移量,也可以计算夏令时。在操作 Date, Calendar等表示日期/时间的对象时,
- 要想充分理解C# out和ref,必须先明确如下两个概念(对值类型与引用类型掌握比较好的,可以跳过“一、明确两个基本概念”)一、明确两个基本
- 前言当我们爱上lambda并且大范围使用它的时候,我想大家都会被lambda中的return语句狠狠地调戏过,所以今天我们需要一起来揭开la
- 我们从书本上学到什么?最明显的,也是直观的方式,在Java中生成随机数只要简单的调用:java.lang.Math.random()在所有其
- Android Studio Intent隐式启动,发短信,拨号,打电话,访问网页等实例代码功能创建5个按钮,隐式启动、发短信、拨号按钮、电
- 面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。在面向对象程序设计(OOP)中,不必关心对象的具体实现。
- Windows 服务在后台执行着各种各样任务,支持着我们日常的桌面操作。有时候可能需要服务与用户进行信息或界面交互操作,这种方式在XP 时代
- 我就废话不多说了,大家还是直接看代码吧~// 要extends TabActivitypublic class Main_activity
- JVM应用度量框架Micrometer实战前提spring-actuator做度量统计收集,使用Prometheus(普罗米修斯)进行数据收