据我所知,.NET中的单个实例有2 GB的限制.我没有太多关注,因为到目前为止我主要使用32位操作系统.在32但它或多或少是一个人为的限制.但是,我很惊讶地发现这个限制也适用于64位.NET.
由于诸如List<T>使用数组来存储项目之类的集合,这意味着与在64位上运行的相同应用程序相比,在32位上运行的.NET应用程序将能够在列表中保存两倍的引用类型项.这非常令人惊讶.
有谁知道这个限制是否在CLR 4.0中得到解决(目前我手头没有安装4.0).
在我的64位机器上,这个C#代码有效:
new byte[2L * 1024 * 1024 * 1024 - 57]
Run Code Online (Sandbox Code Playgroud)
但是这个抛出一个OutOfMemoryException:
new byte[2L * 1024 * 1024 * 1024 - 56]
Run Code Online (Sandbox Code Playgroud)
为什么?
我知道托管对象的最大大小是2 GB,我正在创建的数组对象包含的内容超过了我想要的字节数.也就是说,同步块编号有4个字节(或8?),MethodTable参考有8个字节,数组大小有4个字节.这是24个字节,包括填充,所以为什么我不能分配一个2G-24字节的数组?最大尺寸真的是 2 GB吗?如果是这样的话,2 GB的剩余部分用于什么?
注意:我实际上不需要分配一个包含200万字节的数组.即使我这样做,56个字节的开销可以忽略不计.我可以使用自定义轻松解决限制BigArray<T>.
我正在使用System.Windows.Forms.TextBox.根据文档,MaxLength属性控制进入用户可以键入或粘贴到TextBox中的字符数量(即,可以通过使用例如AppendText函数或Text属性以编程方式添加更多字符).当前的字符数量可以从TextLength酒店获得.
Clear()当达到自定义限制时调用?编辑:我测试过它可以容纳超过600k个字符,无论如何MaxLength,此时我手动停止了程序并询问了这个问题.
假设我有一个看起来像这样的表:
create table #Employee (
EmployeeId int identity(1,1) not null,
FirstName varchar(100) not null,
LastName varchar(100) not null,
Suffix varchar(10) not null,
Prefix varchar(10) not null,
Address varchar(500) null)
Run Code Online (Sandbox Code Playgroud)
我用WCF(Soap)服务填充此表.我的数据合同如下:
[DataContract]
public class Employee
{
[DataMember]
public virtual string FirstName { get; set; }
[DataMember]
public virtual string LastName { get; set; }
[DataMember]
public virtual string Suffix { get; set; }
[DataMember]
public virtual string Prefix { get; set; }
[DataMember]
public virtual string Address { get; set; } …Run Code Online (Sandbox Code Playgroud) 我有一个字符串"可能"比任何简单的int边界长.
目前,string.substring函数只接受int参数作为索引和长度,这对我来说是不够的,因为我需要很长的参数值类型.
你知道长子串函数的任何实现吗?
或者你建议我用非常长的字符串解决这个可能的子串问题?
谢谢.
在.NET中我可以使用任何字符串作为字典键吗?这是模板引擎的一部分,我计划允许用户添加自定义标头和值.
标题将类似于"X值"或"分析和XYZ报告摘要",我担心如果他们会在罕见的角色或类似的东西中获得异常.
我假设有大小限制,但期望它大于256个字符.MSDN没有关于这个问题的任何细节.
我知道当sb已经处于容量状态时,当你使用sb.Append(..)时,StringBuilder对象会分配更多的内存.但是这个容量增加了多少?
StringBuilder sb = new StringBuilder(5);
sb.Append("0123456789");
Run Code Online (Sandbox Code Playgroud)
现在,某人的能力是什么?为什么?乘数是多少?
为了清楚起见.我问的是容量而不是长度.
谢谢!