switch语句中的Const和Static

本文关键字:Static Const 语句 switch | 更新日期: 2023-09-27 18:13:53

我正在转换一些旧的VB。。NET转换为c#。我遇到的比较小的问题之一是如何处理将大型对象传递给方法。在VB中,我们将使用ByRef关键字,如下所示:

    Friend Sub New(ByRef Parent As WorkSheet)
        'INITIALIZE OBJECT
        Me.WS = Parent
        pColorId = 64
        pZoomScale = 100
    End Sub

但是在c#中有一长串的限制使得这是不可能的。例如,refs不能有默认值,你不能传入常量,null或this,因为它们是只读的。

有一个简单的解决方案吗?或者你只是忽略它,不带限定符地传递所有内容,编译器就会做正确的事情?

switch语句中的Const和Static

你不需要通过ref传递对象,所有的类都是引用类型,在你的例子中不需要通过ref传递。

传递引用类型变量

引用类型的变量不直接包含它的数据;它包含对其数据的引用。当您传递引用类型时参数的值,可以改变所指向的数据引用,如类成员的值。


不要将引用传递的概念与的概念混淆引用类型。这两个概念不一样。方法参数可以被ref修改,不管它是值类型还是引用类型。传递值类型时没有装箱通过引用。

在c#中,所有对从object派生的类的引用都被复制到方法中。当你将一个对象引用传递给一个方法时,你对传入的实际对象进行操作。

您引用的ref关键字是对引用的引用,只有在您计划更改传入的引用本身时才需要使用它(在您的示例中,如果您计划将Parent设置为null,则需要ref,并希望这适用于方法之外)。