ref 关键字out关键字

using System;
using System.Collections.Generic;
using
System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace outAndref
{
class Program
{
static void
Main(string[] args)
{
}

//ref修饰方法的参数,在调用的时候必须在变量之前加上ref关键字,只能传递变量,不能传递常量
//传递的时候
不是传递变量的值,而是传递变量的地址
//out
也是传递变量的地址,out必须在方法内赋值,ref可以修改其值,也可以不修改
//out侧重输出,ref侧重修改
static void
TestOut(out int i)
{
i = 100;
}

static void TestRef(ref int i)
{
i++;
}

#region 【冒泡排序】
static void GetMaxAndMin(int[] arr, out int max, out
int min)
{
//Array.Sort(arr);排序
for (int i = 0; i
< arr.Length - 1; i++)
{
for (int j = 0; j
< arr.Length - 1 - i; j++)
{
if
(arr[j] > arr[j + i])
{
int
temp = arr[j];
arr[j] = arr[j + i];

arr[j + 1] = temp;
}
}

}
max = arr[arr.Length - 1];
min =
arr[0];
}
#endregion

#region[属性]
public string name;
public string Name
//属性的返回值跟他封装的字段是没有关系的,跟他的get返回的类型有关系,也跟set赋值的类型也有关系
{
get {

return name;
}
set
{

if (value == "")
{
name =
"hello world";
}else
{

name=value;
}
}
}

#endregion
}
}

时间: 2024-08-24 03:21:16

ref 关键字out关键字的相关文章

关于c#中”ref”和”out”关键字的一些理解

一. 综述(本文内容大部分来自网络,经本人整理而成,仅供学习参考,不免理解错误,欢迎批评指正) 在c#中,方法的参数传递有四种类型: (1) 传值参数(by value) 传值参数无需额外的修饰符.传值参数在方法调用过程中,如果改变了参数的值,那么传入方法的参数在方法调用完成以后并不因此而改变,而是保持原来传入的值.实际 上,传值参数传递的是调用参数的一份拷贝,因此在调用方法的过程中,即使改变了参数的值,也不会影响到实际传入的参数值,详见例程: (2) 传址参数(by reference) 传址

C#方法参数传递-同时使用ref和out关键字

在方法参数传递中,可以同时使用ref和out关键字,但是要注意ref和out参数传递的不同. using System;class Program{static void Main(){    Program obj = new Program();    int score = 55; //声明原来分数    int refscore, outscore; //声明两个变量    obj.ChangeScore(score, ref refscore, out outscore);    Co

REF和OUT关键字的介绍

声明:本文是本人最初写在51CTO上的一篇学习笔记,原文地址为:http://kestrelsaga.blog.51cto.com/3015222/717906 ref与out的比较: ref与out关键字都是使参数通过引用来传递的,不同的是ref 要求变量必须在传递之前进行初始化,而out 的参数在传递之前不需要显式初始化. 在使用ref或out参数,方法定义和调用方法都必须显式使用ref或out关键字,如: 例1(out): 01.class OutExample 02.{ 03. stat

python可变长参数(非关键字及关键字参数)

可变长参数存在的意义是:每次调用一个函数处理不同量的参数输入.即,参数在调用之前输入的参数数量是未知的,或者多次调用该函数,每次的参数输入的量是不一致的: 可变长参数分为非关键字和关键字类型,分别对应元组和字典,如下定义一个类,功能是打印出输入的函数: 1 >>> class Test: 2 def keyword(self,a,b,*non_keyword,**keyword): 3 print('a is ',a) 4 print('b is ',b) 5 print('non_ke

C# ref与out关键字解析

简介:ref和out是C#开发中经常使用的关键字,所以作为一个.NET开发,必须知道如何使用这两个关键字. 1.相同点 ref和out都是按地址传递,使用后都将改变原来参数的数值. 2.ref关键字 (1).使用ref关键字的注意点: i.方法定义和调用方法都必须显式使用 ref 关键字 ii.传递到 ref 参数的参数必须初始化,否则程序会报错 iii.通过ref的这个特性,一定程度上解决了C#中的函数只能有一个返回值的问题 (2).代码示例: using System; using Syst

ref、out 关键字

class ParameterTest { static void Main(string[] args) { int i = 0; int[] ints = { 0, 1, 2, 4, 8 }; Console.WriteLine("i = " + i); Console.WriteLine("ints[0] = " + ints[0]); SomeFunction(ints,i); Console.WriteLine("i = " + i);

C# 使用ref和out关键字

使用ref关键字,可以使参数按引用传递.当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中.若要使用ref关键字进行参数传递,则方法定义和调用方法都必须显示地使用ref关键字,而且使用ref关键字传递的参数必须最先进行初始化.使用out关键字的方法与使用ref关键字的方法类似,同样会导致参数通过引用来传递.不同之处在于,使用out关键字传递的参数并不需要最先进行初始化,但需要在方法返回之前进行赋值.若要使用out关键字传递参数,方法定义和调用方法都必须显示地使用out关键字.

5.C#知识点:ref和Out关键字浅谈

首先我们要知道ref和out在C#里面是什么? 答:它们俩是C#里面的关键字. 他们俩是干啥的呢? 答:他们俩是方法参数的修饰符号,一但使用,方法定义和方法都用都要使用这个关键字,这一点是死规定. 好了废话不多说,既然是修饰符,使用了他们一定是要有意义的对吧.我们先来看一手微软官方定义. 如果大家通过上面微软官方的定义明白了这个参数.那很好,下面的我写的就不需要看啦!还有疑惑就继续往下看.保证你能懂. 这里我先不直接讲解,我先掏出一手代码,然后通过代码讲解. using System; usin

final关键字+const关键字

final关键字 1.如果我们希望某个类不被其它的类来继承(可能因为安全考虑),可以使用final. 例题 <? final class A{} class B extends A{};//会报错 echo "OK"; ?> 2.如果我们希望某个方法,比如计算个人所得税的方法,不能子类改写,可以使用final来修饰方法. 例题 <?php class A{ final public function getRate($salary){ return $salary*0