首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CA1021:避免使用 out 参数

项 “值” RuleId CA1021 类别 设计 修复是中断修复还是非中断修复 重大 原因 公共类型中的公共或受保护方法具有 out 参数。...规则说明 按引用(使用 out 或 ref)传递类型要求具有使用指针的经验,了解值类型和引用类型的不同之处,以及能处理具有多个返回值的方法。...另外,out 和 ref 参数之间的区别并未得到广泛了解。 如果引用类型“按引用”传递,则该方法会使用参数来返回对象的不同实例。 按引用传递引用类型也称为使用双指针、指向指针的指针或双间接。...通过使用“按值”传递这一默认调用约定,采用引用类型的参数已经收到指向对象的指针。 指针(而不是它指向的对象)按值传递。 按值传递表示方法不能更改指针以使其指向引用类型的新实例。...尽管返回值很常见且被大量使用,但正确应用 out 和 ref 参数需要中间设计和编码技能。 为一般用户进行设计的库架构师不应指望用户能熟练运用 out 或 ref 参数

50730
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Postgresql中有out参数的函数,无法配置out值怎么办?

    问题描述 Postgresql中写C函数时,如果函数有out类型的参数,在C代码中 是 无法 为Out参数配置值的,因为return只能配置返回值无法配置out值,这是PG的框架问题,我们可以想办法规避...select tp14(1,2,3); 解决方案 第一步:function改写成procedure,并把return值的类型加入到参数列表中,作为一个out类型的参数: CREATE or replace...rr 参数,通过out作为返回值 LANGUAGE plpgsql AS $$ BEGIN b := 1; c := 2; rr := 100; -- return 100 改写为...rr := 100; END; $$; 这样在C语言中,可以return一个record类型(record需要和参数列表中的out数量、类型对齐),record类型中有三列:分别是整形1、整形2、整形...外层函数负责保持与原函数接口一直,外层函数调用内层函数,将rr的值从out参数拿出来,重新return 回去即可!

    94020

    认真CS☀️形参、实参、值参数、引用参数Ref、输出参数Out

    所以下方我们讲的这些参数,都是定义在方法括号内的参数。 值参数 未用ref或out修饰符声明的参数为值参数。 使用值参数,通过将实参的值复制到形参的方式,把数据传递到方法。...即实参、形参,没有ref或out都为值参数 方法被调用时,系统做如下操作。 在栈中为形参分配空间。 复制实参到形参。 值参数的实参不一定是变量。它可以是任何能计算成相应数据类型的表达式。...Out 输出参数使用out关键字,和ref类似,实参和形参同步加out。...out和ref的区别是,out修饰的参数初始值传进方法时被忽略, 也就是说,被out修饰的参数在传进方法之前,是不需要初始化不需要赋值的,反正初值没有用处。...也因为同样的原因,这种参数在赋值之前不能读值。 out参数的意义是: 传入方法外的参数,在方法内,对方法外的参数进行赋值。

    9610

    C# 中的 Out 和 Ref 及Params 参数

    out 和ref 参数 经常用来通过方法传递参数来获取值,当您的方法不只有一个返回值的时候,这两个参数就发挥作用了。ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点。 ...在这篇文章里,我将解释如何在c#应用中使用这两个参数。   1、out 参数   out 方法参数关键字使方法引用传递到方法的同一个变量。... i, out j));     Console.WriteLine(i);     Console.WriteLine(j); } }   2、ref 参数   ref 方法参数关键字使方法引用传递到方法的同一个变量...参数的区别    使用ref前必须对变量赋值,out不用。 ...out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。

    1.2K10

    vb.net 学习「建议收藏」

    一、vb.net 是什么 vb :即Visual Basic .net:是一个开发平台,在这个平台上可以开发多种语言。 bcl:我的理解就是类的定义 clr:我的理解就是类的使用。...作用:(相当于java虚拟机,内存管理,垃圾清理) 注:因为百度上说的都太宏观了,目前还是刚刚接触这个,是从名字上去理解,有其他见解可以留言或后面我有不同感悟再改 二、vb.net有什么用 目前我接触到...add()时顺序不对 cmd.BindByName = True 目的是根据名字去对应参数 (3)开启事务: Public Shared Function ConOracle() As OracleConnection...3.类间具有层次结构 • 多态性 :指的是同一个消息根据发送消息对象的不同采用多种不同的行为方式 (5).msgBox使用: If MsgBox("This is a VB.NET...(DataSet) 白话说:adapter去把数据从数据库拿到应用程序,先建立连接,设置sql去操作数据库,得到数据放到dataset,这个适配器模式,把command作为成员变量,dataset作为参数传入

    3.2K10

    ref与out

    首先:两者都是按地址传递的,使用后都将改变原来参数的数值。...其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。这个就是两个的区别.  ...总结:ref是有进有出,out是只出不进。 1.ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。...若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。 2.out 关键字会导致参数通过引用来传递。...若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。

    75150
    领券