c# - 在属性中传递 ref 类型,C# 是按值传递还是 ref 传递

标签 c# pass-by-reference

使用 c#、vs2008、winforms

如果我通过属性将参数从父窗体传递给子窗体,或者实际上通过属性传递给任何类,并且在 C# 中传递的参数是在父窗体中创建的引用类型,
默认情况下它会作为 ref 或 value 传递吗?

例如,如果我通过属性传递数据集。
如果它确实是按值传递的,你可以让它通过 ref 通过属性传递吗?
还是我应该通过方法参数传递它,这是更好的做法吗?

基本上我想将填充的对象检索回父表单,并感觉通过 ref 传递在父表单中创建的对象会更好。

最佳答案

对于引用类型,对变量的引用是按值传递的。当然,除非您使用 refout C# 中的关键字来改变这种行为。

这意味着 DataSet 值属性实际上传递了对 DataSet 实例的引用,并按值传递它。

Jon Skeet's "C# in Depth"在这些问题上是一个很好的引用(没有双关语)。

关于c# - 在属性中传递 ref 类型,C# 是按值传递还是 ref 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2331466/

相关文章:

c# - 在 WebBrowser 控件中禁止保存/打开对话框

c++ - SDL 指针和引用

C++:通过引用传递或使用私有(private)实例变量

c# - 中止请求时 IIS/C# 中会发生什么

c# - 进行字节级操作的最干净的方法是什么?

c# - ASP.Net Web Api响应未经授权的访问

c++ - 为什么我应该更喜欢对智能指针的引用而不是智能指针作为 C++ 中的参数

javascript - forEach() 是否通过引用绑定(bind)?

c++ - 如何通过地址传递 char 指针以接受 char**?

c# - 从 xml 数据源读取 url