问题标签 [reference-type]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
5932 浏览

c# - C#中的默认参数传递

也许是一个老问题,但在互联网上找不到任何全面的东西。

如果 C# 中默认的参数传递方法是By value,那么它如何影响初始 Reference Type 变量?

即在下面的示例中,如果它是按值传递的参数,为什么它会打印“Hello World”而不仅仅是“Hello”?

0 投票
5 回答
1877 浏览

c# - 将类型引用类型设置为 null 不会影响复制的类型?

为什么这会产生“0”?

b 不是指向同一个位置并设置 a = null 有效地使 b 为空吗?

0 投票
2 回答
638 浏览

c# - 为什么 Microsoft 建议跳过为引用类型实现相等运算符?

根据MSDN大多数引用类型不得重载相等运算符,即使它们覆盖 Equals。但是,如果您正在实现旨在具有值语义的引用类型,例如复数类型,则必须覆盖相等运算符。

为像 Customer 这样的典型域实体实现equals方法和相等运算符的最佳实践是什么?

如果两个实体的身份相同,它是否应该实现equals方法以返回true ?如果实体不是不可变的怎么办?如果两个实体都是新实体并且它们的标识具有空值怎么办。那么相等运算符呢?

正如JaredPar在这里 提到的, Equals 实际上将测量值的相等性,而 == 将测量它们是否是相同的参考。

0 投票
3 回答
7228 浏览

c#-4.0 - 数据集/数据表是值类型或引用类型

数据表/数据集是引用类型的值类型吗?

但我心中最重要的问题是——“如何判断一个类型是值类型还是引用类型?

0 投票
6 回答
1688 浏览

c# - Since Int32 is a value type why does it inherit .ToString()?

These are the docs about .ToString() that has prompted this question. They state:

Because Object is the base class of all reference types in the .NET Framework, this behavior [.ToString()] is inherited by reference types that do not override the ToString method.

Yet further on it goes to state:

For example, the base types such as Char, Int32, and String provide ToString implementations

However Int32 is a struct and hence must be a value type.

So what's going on here? Does Int32 implement it's very own .ToString() which has nothing to do with Object?

0 投票
2 回答
1137 浏览

.net - VB.NET 4.0:对于我的 TdConnection 属性,ThreadStatic 似乎不是线程安全的

这是我的代码:

它位于 ASP.NET Web 应用程序的一个模块中,因此所有成员根据定义都是共享/静态的。我的目标本质上是懒惰。我在任何地方都使用连接,因此拥有一个线程静态属性是有意义的,这样它就可以作为每个线程的一个新实例,而不是每次我想使用它时都会使新的连接对象变暗。

这似乎一直有效,直到我决定在两个不同的浏览器中加载相同的页面。当我这样做时,会抛出一个异常,指出连接对象已在使用中。

我在 Microsoft 文章中读到,不能保证实例类型是线程安全的。如果是这种情况,我该怎么做才能确保此属性及其字段是线程安全的?

编辑:令人困惑的是此代码在页面加载事件中起作用:

这些 .LoadData() 方法中的每一个都在一个单独的线程中执行,并且它们都引用了我上面的 GlobalConnection 属性。我最初在没有 ThreadStatic 属性的情况下编写了所有这些内容。遇到错误后,我创建了 GlobalConnection 属性 ThreadStatic,问题就消失了。当它投入生产时,这个网络应用程序将被多人使用。这就是促使我在两个 Web 浏览器中打开同一页面的原因。我认为那将是两个单独的线程,但也许我错了。

0 投票
3 回答
710 浏览

c# - 是否所有不继承自 System.ValueType 引用类型的对象?

我是否正确地相信任何不继承自System.ValueType的对象因此必须定义为引用类型?

我一直无法找到任何确凿的文件来支持这个概念。

0 投票
4 回答
9823 浏览

c# - 接口变量是否具有值类型或引用类型语义?

接口变量是否具有值类型或引用类型语义?

接口由类型实现,这些类型要么是值类型,要么是引用类型。很明显,intand都string实现了IComparable, andint是值类型, andstring是引用类型。但是这个呢:

(我试图回答的问题可能被删除了,因为它询问接口是存储在堆栈上还是堆上,而且,我们都应该知道,考虑值和引用类型之间的差异更具建设性。语义而不是它们的实现。有关讨论,请参阅 Eric Lippert 的The stack is an implementation detail。)

0 投票
6 回答
1681 浏览

c# - 为什么我需要通过引用我的交换函数来传递字符串?

在 C# 中,字符串是一种引用类型。然后,

为什么我需要让我的交换函数有 ref 参数?

0 投票
4 回答
2204 浏览

c# - 为什么我们需要 .NET 中的引用类型

为什么我们需要 .NET 中的引用类型?

我只能想到一种情况,它支持在不同功能之间共享数据,因此可以优化存储。

除此之外我无法列举任何原因,为什么需要引用类型?