首页 > 其他分享 >参数ref、out浅析

参数ref、out浅析

时间:2023-08-06 23:56:09浏览次数:38  
标签:调用 int sum 参数 ref 浅析 out

outref 是 C# 语言中传递参数的关键字,用于在方法调用中修改参数值。它们分别用于输出参数和引用参数。但都可以用于优化代码性能和减少内存分配。

out:只出不进,可用于在方法调用中设置输出参数。输出参数是在方法调用过程中分配并返回给调用方的参数。输出参数必须在函数体内初始化,然后在方法内部进行修改。使用输出参数可以减少方法重载的数量。

例子:

Test();
static void Test()
{
    int a = 1;
    int b = 2;
    int sum;
    Sum( a, b, out sum);
}

static void Sum(int a, int b, out int sum)
{
    sum = a + b;//返回给调用方的是out的sum
}

 

ref:又进又出,可用于传递参数,也可用于输出参数。这意味着在方法内部对参数所做的更改将反映在调用方中的原始变量上。传递参数必须外初始化(方法体内或者方法体外都可以),使用引用参数可以避免在方法中创建新的变量。

例子:

Test();
static void Test()
{
    int a = 1;
    int b = 2;
    int e;
    Max(a, ref b);
}
static void Max(int a, ref int b)
{
    if (a > b)
    {
        b = a;
    }
    Console.WriteLine($"{b}");
    //返回给调用方的是ref 的b
}

 

标签:调用,int,sum,参数,ref,浅析,out
From: https://www.cnblogs.com/ererjie520/p/17608757.html

相关文章

  • vue-router addRoute将子路由添加到指定路由下
    router.addRoute()可以向vue路由中动态的添加路由信息,但,路由存在多层级关系,例如,最开始的路由是这样的:{path:'/',name:'layout',component:resolve=>require(['../layout'],resolve),meta:{title:'',handleStatus:......
  • traceroute nslookup dig用法
    traceroutenslookupdig用法1,traceroute路由追踪格式:tracerouteIP地址[root@localhost~]#traceroute192.168.1.200tracerouteto192.168.1.200(192.168.1.200),30hopsmax,60bytepackets1 192.168.1.200(192.168.1.200) 0.417ms!X 0.293ms!X 0.178......
  • 【8.0】Vue之ref属性
    【ref属性】ref属性,vue提供的,写在标签上可以写在普通标签:在vue中使用this.$refs.名字拿到dom对象,可以原生操作可以写在组件上:在vue中使用this.$refs.名字拿到[组件]对象,组件属性,方法直接使用即可【详解】ref属性是Vue.js中提供的一种特殊属性,它可以用于在标签上......
  • 【标签属性补充】scoped/ref/props
    【一】scoped新建的组件加了scoped,表示样式只在当前组件生效如果不加,子组件都会使用这个样式<stylescoped></style>scoped是Vue.js中的一个样式作用域限定符,用于将样式限制在当前组件中生效,并不会影响子组件或父组件。使用scoped后,样式只会应用于当前组件的......
  • route用法
    route用法查看或设置主机中路由表信息1,查看路由表信息routeroute[-n]-n:将路由记录中的地址信息显示为数字形式#路由表主要构成:#Destination:目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0表示所有未知网络,又称为默认路由,优先级最低#Genmask:目标网络对应的netmas......
  • The server quit without updating PID file
    root@ubuntu:/usr/local/mysql#./bin/mysql.serverrestartShuttingdownMySQL..*StartingMySQL......*TheserverquitwithoutupdatingPIDfile(/usr/local/mysql-5.7.21-linux-glibc2.12-x86_64/data/ubuntu.pid). [mysqld] prompt=(\u@\h)[\d]>\  ......
  • docker容器中tomcat启动out of memory
    docker容器中tomcat启动outofmemory宿主机KylinV10容器centos7tomcat启动报错libraryinitializationfailed-unabletoallocatefiledescriptortable-outofmemory宿主机ulimit-n65535容器内ulimit-n1073741816解决方案容器内修改/etc/profile添......
  • [Vue warn]: Property or method "todoName" is not defined on the instance but ref
    错误原因先上报错截图报错翻译:解决办法首先需要保证初始化属性时该属性是被动的,两种情况是在数据选项中,是一些基于类的组件。在vue的template中使用了该属性,但是在data或者methods中还并没有被定义,就被使用了,造成了这个错误。在data中定义一下这个数据或者在met......
  • Prefixes and Suffixes 题解
    题目传送门一道字符串题。我们考虑还原字符串后再一个一个的判断。很显然,这个字符串是由一个长度为\(n-1\)的前缀和后缀组成的。因此我们可以找到这\(2\)个长度为\(n\)的字符串,然后枚举哪个是前缀,哪个是后缀。值得注意的是,当你判断一个字符串为前缀时,如果后面出现了同样......
  • nohup.out相关介绍,作用,使用,清空。
    1.nohup.out的由来及作用用途:LINUX命令用法,不挂断地运行命令。语法:nohupCommand[Arg...][&]描述:nohup命令运行由Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用nohup命令运行后台中的程序。要运行后台中的nohup命令,添加&(......