如果您在 .NET 中创建一个类,是否有任何方法对其进行限制,以便如果它被传递到某个方法(作为输入参数),则它只能通过引用传递或只能通过值传递?
我在想也许可以通过类的一个属性?
最佳答案
我认为答案是否定的,因为 ByVal 和 ByRef 是由方法做出的选择,而不是调用者或类型设计者。
但是,听起来您想要的是创建一个您知道不可变的类型?也许您想确定它永远不会被更改?那么你可以做的是以下之一(不是完整列表):
创建对象,以便您可以通过使用私有(private)、公共(public)、内部关键字等访问可设置的属性。
创建对象,以便您可以通过构造函数获得其内部状态的唯一方法。
实现一个接口(interface)并传递该接口(interface)而不是实现它的对象。该接口(interface)将设计为仅读取对象的内部状态。
防止任何人使用 sealed (C#) 或 NotInheritable (VB) 关键字派生对象。
关于c# - 限制 .NET 类型是否只能通过 ByVal 或 ByRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3362964/