switch 语句中的 Const 与 Static
Const vs. Static in a switch statement
我正在将一些旧的 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
,因为它们是只读的。
有没有简单的解决方法?或者您只是忽略它并在没有限定符的情况下传递所有内容,而编译器只是做正确的事情?
您不需要通过 ref 传递对象,所有 类 都是引用类型,在您的情况下不需要通过 ref 传递。
Passing Reference Type Variables
A variable of a reference type does not contain its data directly; it
contains a reference to its data. When you pass a reference-type
parameter by value, it is possible to change the data pointed to by
the reference, such as the value of a class member.
Do not confuse the concept of passing by reference with the concept of
reference types. The two concepts are not the same. A method parameter
can be modified by ref regardless of whether it is a value type or a
reference type. There is no boxing of a value type when it is passed
by reference.
在 C# 中,从 object
派生的对 类 的所有引用都将复制到该方法。当您将对象引用传递给方法时,您对传入的实际对象进行操作。
您引用的 ref
关键字是对引用的引用,如果您打算更改传入的引用本身(在您的示例中,您将如果您计划将 Parent
设置为 null,并且希望它在方法之外应用,则需要 ref
。
我正在将一些旧的 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
,因为它们是只读的。
有没有简单的解决方法?或者您只是忽略它并在没有限定符的情况下传递所有内容,而编译器只是做正确的事情?
您不需要通过 ref 传递对象,所有 类 都是引用类型,在您的情况下不需要通过 ref 传递。
Passing Reference Type Variables
A variable of a reference type does not contain its data directly; it contains a reference to its data. When you pass a reference-type parameter by value, it is possible to change the data pointed to by the reference, such as the value of a class member.
Do not confuse the concept of passing by reference with the concept of reference types. The two concepts are not the same. A method parameter can be modified by ref regardless of whether it is a value type or a reference type. There is no boxing of a value type when it is passed by reference.
在 C# 中,从 object
派生的对 类 的所有引用都将复制到该方法。当您将对象引用传递给方法时,您对传入的实际对象进行操作。
您引用的 ref
关键字是对引用的引用,如果您打算更改传入的引用本身(在您的示例中,您将如果您计划将 Parent
设置为 null,并且希望它在方法之外应用,则需要 ref
。