问题标签 [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.
c# - C#中的默认参数传递
也许是一个老问题,但在互联网上找不到任何全面的东西。
如果 C# 中默认的参数传递方法是By value,那么它如何影响初始 Reference Type 变量?
即在下面的示例中,如果它是按值传递的参数,为什么它会打印“Hello World”而不仅仅是“Hello”?
c# - 将类型引用类型设置为 null 不会影响复制的类型?
为什么这会产生“0”?
b 不是指向同一个位置并设置 a = null 有效地使 b 为空吗?
c#-4.0 - 数据集/数据表是值类型或引用类型
数据表/数据集是引用类型的值类型吗?
但我心中最重要的问题是——“如何判断一个类型是值类型还是引用类型? ”
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?
.net - VB.NET 4.0:对于我的 TdConnection 属性,ThreadStatic 似乎不是线程安全的
这是我的代码:
它位于 ASP.NET Web 应用程序的一个模块中,因此所有成员根据定义都是共享/静态的。我的目标本质上是懒惰。我在任何地方都使用连接,因此拥有一个线程静态属性是有意义的,这样它就可以作为每个线程的一个新实例,而不是每次我想使用它时都会使新的连接对象变暗。
这似乎一直有效,直到我决定在两个不同的浏览器中加载相同的页面。当我这样做时,会抛出一个异常,指出连接对象已在使用中。
我在 Microsoft 文章中读到,不能保证实例类型是线程安全的。如果是这种情况,我该怎么做才能确保此属性及其字段是线程安全的?
编辑:令人困惑的是此代码在页面加载事件中起作用:
这些 .LoadData() 方法中的每一个都在一个单独的线程中执行,并且它们都引用了我上面的 GlobalConnection 属性。我最初在没有 ThreadStatic 属性的情况下编写了所有这些内容。遇到错误后,我创建了 GlobalConnection 属性 ThreadStatic,问题就消失了。当它投入生产时,这个网络应用程序将被多人使用。这就是促使我在两个 Web 浏览器中打开同一页面的原因。我认为那将是两个单独的线程,但也许我错了。
c# - 是否所有不继承自 System.ValueType 引用类型的对象?
我是否正确地相信任何不继承自System.ValueType的对象因此必须定义为引用类型?
我一直无法找到任何确凿的文件来支持这个概念。
c# - 接口变量是否具有值类型或引用类型语义?
接口变量是否具有值类型或引用类型语义?
接口由类型实现,这些类型要么是值类型,要么是引用类型。很明显,int
and都string
实现了IComparable
, andint
是值类型, andstring
是引用类型。但是这个呢:
(我试图回答的问题可能被删除了,因为它询问接口是存储在堆栈上还是堆上,而且,我们都应该知道,考虑值和引用类型之间的差异更具建设性。语义而不是它们的实现。有关讨论,请参阅 Eric Lippert 的The stack is an implementation detail。)
c# - 为什么我需要通过引用我的交换函数来传递字符串?
在 C# 中,字符串是一种引用类型。然后,
为什么我需要让我的交换函数有 ref 参数?
c# - 为什么我们需要 .NET 中的引用类型
为什么我们需要 .NET 中的引用类型?
我只能想到一种情况,它支持在不同功能之间共享数据,因此可以优化存储。
除此之外我无法列举任何原因,为什么需要引用类型?