草庐IT

make_new_type

全部标签

c# - 分配相同大小的对象是否会提高 GC 或 "new"性能?

假设我们要创建许多字节数组类型的小对象。大小各不相同,但总是低于1024字节,比如780,256,953....如果我们始终只分配bytes[1024],并且只使用需要的空间,是否会随着时间的推移提高operatornew或GC效率?UPD:这是短暂的生命对象,为解析二进制协议(protocol)消息而创建。UPD:在这两种情况下,对象的数量是相同的,只是分配的大小发生了变化(随机vs.总是1024)。在C++中,由于碎片化和C++的新性能,这很重要。但是在C#中.... 最佳答案 Willitimproveoperatornewo

c# - ASP.NET MVC : Views using a model type that is loaded by MEF can't be found by the view engine

我正在尝试创建一个框架,以允许将Controller和View动态导入到MVC应用程序中。到目前为止,它是这样工作的:我正在使用.NET4、ASP.NETMVC3RC和RazorViewEngine每个项目都使用MEF导出和导入Controller-我将给定项目中的一组Controller和View称为“模块”BuildManager使用应用前启动方法和BuildManager.AddReferencedAssembly动态引用使用MEF发现的程序集。使用构建事件将二进制文件(来自导出项目)和View复制到目标项目的文件夹结构中使用自定义Controller工厂选择Controller

c# - 为什么这段代码会提示 "the arity of the generic type definition"?

我有一个通用类型:classDictionaryComparer:IEqualityComparer>还有一个工厂方法,它将(应该)为给定的字典类型创建此类的实例。privatestaticIEqualityComparerCreateDictionaryComparer(){Typedef=typeof(DictionaryComparer);Debug.Assert(typeof(T).IsGenericType);Debug.Assert(typeof(T).GetGenericArguments().Length==2);Typet=def.MakeGenericType(ty

c# - The non-generic method cannot be used with type arguments in this context 是什么意思?

我有以下类和方法:publicclassUserManager:IDisposablewhereTUser:class,global::Microsoft.AspNet.Identity.IUserwhereTKey:global::System.IEquatable{publicvirtualTaskFindByIdAsync(TKeyuserId);和:privateApplicationUserManager_userManager;publicApplicationUserManagerUserManager{get{return_userManager??Request.Ge

c# - "The binary operator Add is not defined for the types ' System.String ' and ' System.String '."-- 真的吗?

尝试运行以下代码时:Expression>stringExpression=Expression.Lambda>(Expression.Add(stringParam,Expression.Constant("A")),newList(){stringParam});stringAB=stringExpression.Compile()("B");我收到标题中提到的错误:“二元运算符Add没有为类型‘System.String’和‘System.String’定义。”真的是这样吗?显然在C#中它有效。在C#中执行strings="A"+"B"是表达式编译器无法访问的特殊语法糖吗?

c# - 从仅给定 Type 实例的 MEF 容器中获取导出

我有一个场景,我必须从我的CompositionContainer实例中导出,但我只有一个Type可以使用;我在编译时不知道类型,因此我无法以正常的通用方式检索导出的对象。通常你会这样做:_container.GetExportedObject();但就我而言,我有这个:TypesomeType=...;_container.HowDoIGetTheExport(someType);有什么想法吗? 最佳答案 找到答案:varexport=_container.GetExports(someType,null,null).FirstO

c# - XMLReader.Create() 和 new XMLTextReader() 之间的区别

我想了解XMLReader.Create和newXMLTextReader()读取XML的区别。我为什么要选择一个而不是另一个?有性能差异吗?我知道XMLReader是XMLTextReader的抽象类型,至少我之前是这样读的,但我看到有人建议使用XMLReader.Create()方法而不是新的XMLReader()实例。提前致谢...真诚的。 最佳答案 XmlReader.Create允许您指定XmlReaderSettings,XmlTextReader构造函数重载均不执行此操作。

c# - 使用 System.Type 进行转换 - c#

是否可以使用System.Type?作为引用将对象转换为所需的类型?我进行了搜索,普遍的共识是否定的,尽管我希望C#4.0中引入的一些帮助可以帮助我。即以下将不起作用,但伪代码是我想要的。objecto=null;vart=typeof(string);...stringfoo=(t)o;编辑:我需要使用XmlSerializer来重构/反序列化为存储在t中的类型 最佳答案 看看:varfoo=Convert.ChangeType(o,typeof(string)) 关于c#-使用Sys

c# - 将 "C# friendly type"名称转换为实际类型 : "int" => typeof(int)

我想得到一个System.Type给定一个string指定一个(原始)类型的C#友好名称,基本上是C#编译器在阅读C#源代码时的方式。我觉得描述我所追求的东西的最佳方式是以单元测试的形式。我希望存在一种通用技术可以使以下所有断言都通过,而不是尝试对特殊C#名称的特殊情况进行硬编码。TypeGetFriendlyType(stringtypeName){...??...}voidTest(){//usingfluentassertionsGetFriendlyType("bool").Should().Be(typeof(bool));GetFriendlyType("int").Sho

C# new in 方法声明

publicnewintAdjustedBaseValue这里的new是什么意思或作用? 最佳答案 这意味着您正在隐藏int值。它在基类中声明,而您在派生类中重新声明它,有效地隐藏了基类版本。参见文档here获取更多信息。引用示例here 关于C#newin方法声明,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4764382/