问题标签 [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 投票
19 回答
450746 浏览

.NET 中的结构和类有什么区别?

.NET 中的结构和类有什么区别?

0 投票
4 回答
18701 浏览

你可以在结构中有一个类吗?

在 C# 中是否可以有一个带有类类型成员变量的 Struct?如果是这样,信息存储在哪里,在堆栈、堆或两者上?

0 投票
12 回答
196715 浏览

在 C# 中,为什么 String 是一种行为类似于值类型的引用类型?

String 是一种引用类型,尽管它具有值类型的大部分特征,例如不可变和重载 == 以比较文本,而不是确保它们引用同一个对象。

那么为什么字符串不只是一个值类型呢?

0 投票
2 回答
10528 浏览

C#如何查找引用类型的大小

我想知道是否有办法在 C# 中找到引用类型的大小。我做了一些谷歌搜索,论坛上的一般想法似乎是这是不可能的。我想我会问你们,看看这里是否有人知道得更好。

毕竟,分析工具必须有办法做到这一点?我知道通常不需要知道这些信息,但在某些情况下它会很有用。

0 投票
6 回答
31180 浏览

Can structs contain fields of reference types

Can structs contain fields of reference types? And if they can is this a bad practice?

0 投票
7 回答
1026 浏览

查找字节数组数组是否包含另一个字节数组的最快方法是什么?

我有一些非常慢的代码。我知道它会是,现在它是。基本上,我正在从一堆目录中读取文件。文件名改变,但数据不变。为了确定我是否已读取该文件,我对它的字节进行哈希处理并将其与已处理文件的哈希列表进行比较。每个目录中大约有 1000 个文件,弄清楚每个目录中的新内容需要花费一分钟左右的时间(然后开始处理)。这是基本代码:

无论如何我可以加快速度吗?

0 投票
2 回答
421 浏览

将属性作为 ref 传递给函数后,在 .NET 中获取属性的属性

是否可以传递一个属性,例如。Person.Firstname 通过引用一个函数然后仍然能够通过这个引用类型读取 Person.Firstname 的属性?

那么引用类型是否知道它不仅是一个字符串,还是类 Person 的 Firstname 属性?

蒂亚


我尝试为我的 asp.net mvc 应用程序编写一个扩展,该应用程序使用 jquery.autotab 并将必要的 js 代码添加到基于属性的 Html.TextBox 输出中。

例如

TextBoxAutoTab 的签名看起来像这样

0 投票
2 回答
300 浏览

Nullable<> 作为 ViewPage 的 TModel

哪些 Nullable<> 类型不允许作为 System.Web.Mvc.ViewPage<TModel> 泛型的 TModel 参数传递的可能原因是什么?这有时会很方便。

在 ASP.NET MVC 源代码中定义了 TModel 应该是一个类:

但可空类型是值类型。也许定义可以不那么严格......

0 投票
9 回答
7861 浏览

在 C# 中对值类型进行装箱的用例?

在某些情况下,需要将值类型的实例视为引用类型的实例。对于这种情况,可以通过一个称为装箱的过程将值类型实例转换为引用类型实例。当一个值类型实例被装箱时,存储在堆上分配并且实例的值被复制到那个空间中。对此存储的引用被放置在堆栈上。装箱的值是一个对象,一个包含值类型实例内容的引用类型。

了解 .NET 的通用类型系统

Wikipedia中有一个 Java 示例。但是在 C# 中,在哪些情况下必须将值类型装箱?或者一个更好/类似的问题是,为什么要将值类型存储在堆(装箱)而不是堆栈上?

0 投票
3 回答
2172 浏览

Mutable wrapper of value types to pass into iterators

I'm writing an iterator that needs to pass around a mutable integer.

This nets me "Error 476 Iterators cannot have ref or out parameters".

What I need is this integer value to be modified in the iterator and usable by the caller of the iterator. In other words, whatever calls Foo() above wants to know the end value of valueThatMeansSomething and Foo() may use it itself. Really, I want an integer that is a reference type not a value type.

Only thing I can think of is to write a class that encapsulates my integer and permits me to modify it.

So:

Is there any class or mechanism to handle this already in the BCL? Any flaws with ValueWrapper<T> proposed above?

(My actual use is more complicated than the example above so handling the variable inside my foreach loop that calls Foo() is not an option. Period.)