value-type相关内容

是否可以克隆ValueType?

在已知对象是盒装ValueType的情况下,是否可以在不编写特定于类型的克隆代码的情况下克隆该对象? 一些代码供参考 List values = new List {3, DateTime.Now, 23.4M}; DuplicateLastItem(values); 我遇到的主要问题是基于值堆栈的虚拟指令机。(我懒得写typeof(In ..
发布时间:2022-04-14 10:57:11 C#/.NET

ValueTypes 如何从 Object (ReferenceType) 派生并且仍然是 ValueTypes?

C# 不允许结构派生自类,但所有 ValueTypes 都派生自 Object.这种区别在哪里? CLR 如何处理这个问题? 解决方案 C# 不允许结构派生自类 您的陈述不正确,因此您感到困惑.C# 确实 允许结构派生自类.所有结构都派生自同一个类 System.ValueType,后者派生自 System.Object.并且所有枚举都派生自 System.Enum. ..
发布时间:2022-01-31 16:22:01 C#/.NET

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

.NET 中的结构和类有什么区别? 解决方案 在.NET中,有两类类型,引用类型和值类型.p> 结构是值类型,类是引用类型. 一般的区别是引用类型存在于堆上,而值类型存在于内联,也就是说,无论它是你定义的变量或字段. 包含值类型的变量包含整个值类型值.对于结构,这意味着变量包含整个结构及其所有字段. 一个包含引用类型的变量包含一个指针,或者一个引用到内存中实际值所在的其 ..
发布时间:2022-01-31 15:37:41 C#/.NET

用完 ValueType 堆栈空间

我的理解是 .Net 中的每个新线程都会分配 1MB 的堆栈空间.进一步我的理解是值类型存储在堆栈而不是堆中...... 所以我的问题是这样的;这种行为是否意味着任何 ValueType 变量声明都被限制为 1MB 的存储空间?您在当前范围内声明的 ValueType 越多,调用堆栈可以有效地越小,这是否意味着声明(为了论证)~260,000 个整数将使用您的所有堆栈空间? 解决方案 ..
发布时间:2022-01-22 12:54:57 C#/.NET

为什么委托是引用类型?

关于已接受答案的快速说明:我不同意 Jeffrey 的回答,即由于 Delegate 必须是引用类型,因此所有委托都是引用类型.(多级继承链排除值类型是不正确的;例如,所有枚举类型都继承自 System.Enum,而后者又继承自 System.ValueType,它继承自 System.Object,all 引用类型.)但我认为,从根本上说,所有委托实际上不仅继承自 Delegate 但来自 Mu ..
发布时间:2022-01-18 12:06:04 C#/.NET

Convert.ToBoolean 以“0"失败;价值

我正在尝试将值 "0" ( System.String ) 转换为其 Boolean 表示形式,例如: var myValue = Convert.ToBoolean("0");//这里抛出异常 我查看了 MSDN 页面,并在代码示例块中,我找到了这些行: ConvertToBoolean("0");//...无法将“0"转换为布尔值. 在我的代码中,我将 System.String 转换 ..
发布时间:2022-01-13 08:10:25 C#/.NET

MonoTouch 从子视图设置位置

大家好,我是 MonoTouch 的新手,遇到了问题.谁能告诉我如何设置子视图的位置?我试过这个: UIImageView imageview = new UIImageView(this.ImageSource);this.AddSubview(imageview);this.Subviews[0].Bounds.X = 30; 我希望你们中的任何人都可以帮助我. 谢谢 解决方案 ..
发布时间:2022-01-05 14:52:25 C#/.NET

Convert.ToBoolean 失败并显示“0"价值

我正在尝试将值 "0" ( System.String ) 转换为它的 Boolean 表示,例如: var myValue = Convert.ToBoolean("0");//这里抛出异常 我查看了 MSDN 页面,在代码示例块中,我找到了这些行: ConvertToBoolean("0");//...无法将“0"转换为布尔值. 在我的代码中,我像这样从 System.String 转 ..
发布时间:2022-01-05 12:12:49 C#/.NET

如何在 C# 中存储对整数的引用?

可能的重复: 我如何通过“引用"分配;到 c# 中的类字段? 大家好 - 请告诉我如何进行这项工作?基本上,我需要一个整数引用类型(int* 可以在 C++ 中工作) 类栏{私有引用 int m_ref;//这个不存在公共 A(ref int val){m_ref = val;}公共无效 AddOne(){m_ref++;}}课程计划{静态无效主(){int foo = 7;Bar b ..
发布时间:2022-01-05 11:52:07 C#/.NET

这个“()"符号是什么意思?

我刚开始学习 F#.本书使用以下符号: let name() = 3名称() 与此不同的是: let name = 3名称 ? 解决方案 在回答 () 是什么之前,让我们先定义一些基础知识并完成一些示例. 在 F# 中,let 语句 具有名称、零或更多参数和一个表达式. 为了保持简单,我们将采用: 如果没有参数,那么 let 语句是一个值. 如果有参数,那么 let ..
发布时间:2022-01-05 09:35:17 其他开发

使用具有值类型的 NHibernate ICompositeUserType

我有一个域模型对象,它具有 System.DateTimeOffset 类型的属性.我使用的数据库本身不支持这种类型,因此我计划使用类型为“datetime"的列和类型为“smallint"的列来存储它. 我已经研究了如何使用 NHibernate 组件映射它,并发现它可以使用 ICompositeUserType 实例工作.然而,在实现接口时,我遇到了一个名为“SetPropertyVal ..
发布时间:2022-01-02 16:21:12 其他开发

“原始人"是怎么来的?非递归定义的类型?

由于 C# 中的 struct 由其成员的位组成,因此您不能拥有包含任何 T 字段的值类型 T: //'T' 类型的结构体成员 'T.m_field' 导致结构体布局循环struct T { T m_field;} 我的理解是上述类型的实例永远无法实例化*——任何尝试这样做都会导致实例化/分配的无限循环(我猜这会导致堆栈溢出?**)——或者,另一种看待它的方式可能是定义本身没有意义;也许这是一 ..
发布时间:2021-12-23 17:32:14 C#/.NET

你能在结构中有一个类吗?

在 C# 中是否有可能有一个带有类类型成员变量的结构?如果是这样,信息存储在何处,在堆栈、堆或两者中? 解决方案 是的,你可以.指向类成员变量的指针与结构体的其余值一起存储在栈上,而类实例的数据存储在堆上. 结构也可以包含类定义作为成员(内部类). 这里有一些非常无用的代码,至少可以编译并运行以表明这是可能的: 使用系统;命名空间 ConsoleApplication1{课程 ..
发布时间:2021-12-23 17:30:58 C#/.NET

为什么.NET 中没有RAII?

主要是 C++ 开发人员,Java 中缺少 RAII(资源获取即初始化),并且.NET 一直困扰着我.清理的责任从类编写者转移到其使用者(通过 try finally 或 .NET 的 using 构造) 似乎明显较差. 我明白了为什么在 Java 中不支持 RAII,因为所有对象都位于堆上并且垃圾收集器本质上不支持确定性销毁,但在 .NET 中引入了值类型(struct) 我们有(看似)完 ..
发布时间:2021-12-23 17:10:38 C#/.NET

用引用类型成员定义结构体有意义吗?

定义具有引用类型成员的结构体(而不是将其定义为类)是否有意义?例如,定义这个结构: public struct SomeStruct{字符串名称;int32 位;} 我之所以这么问是因为我知道结构体是一种值类型,并且在其中定义某个引用类型没有任何意义. 我说得对吗?有人能解释一下吗? 解决方案 十有八九,您应该首先创建一个类而不是一个结构.例如,与您在 C++ 中可能发现的语义相 ..
发布时间:2021-12-23 17:07:07 C#/.NET