clr相关内容

Silverlight 内存分析器是否存在?

CLR 分析器似乎不适用于 Silverlight CLR.是否存在另一个内存分析器? 解决方案 似乎还没有可用的方案.但是,正如在此论坛主题中推荐,您可以转换您的 Silverlight应用到 WPF 应用程序和配置文件: 目前还没有任何工具,但作为一种解决方法,您可以从相同的代码库和少量调整轻松创建 Silverlight 客户端的桌面 (WPF) 版本(有关此示例,请参阅 Sc ..
发布时间:2021-12-23 23:43:15 C#/.NET

为什么 CLR 不总是调用值类型构造函数

我有一个关于值类型中的类型构造函数的问题.这个问题的灵感来自 Jeffrey Richter 通过 C# 3rd ed 在 CLR 中写的东西,他说(在第 195 页 - 第 8 章)你永远不应该在值类型中实际定义类型构造函数,因为有时 CLR 不会调用 因此,例如(嗯……实际上是杰弗里·里希特斯的例子),即使查看 IL,我也无法弄清楚为什么在以下代码中没有调用类型构造函数: 内部结构 S ..
发布时间:2021-12-23 17:28:38 C#/.NET

为什么必须使用非默认构造函数初始化 C# 结构中的所有字段?

我想试试这个代码: public struct 方向{私人 int _azimuth;公共国际方位角{得到{返回_方位角;}设置{_方位角=值;}}公共方向(int azimuth){方位角 = 方位角}} 但是它在编译时失败了,我知道 struct 需要初始化它的所有字段.但我试图了解 CLR\IL 引擎盖下会发生什么.为什么它在任何其他方法\属性\这个等之前需要所有字段 谢谢. ..
发布时间:2021-12-23 17:18:13 C#/.NET

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

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

为什么结构对齐取决于字段类型是原始类型还是用户定义的?

在 Noda Time v2 中,我们正在转向纳秒分辨率.这意味着我们不能再使用一个 8 字节的整数来表示我们感兴趣的整个时间范围.这促使我调查 Noda Time 的(许多)结构的内存使用情况,这反过来又引导我发现 CLR 对齐决策中的一个小奇怪之处. 首先,我意识到这是一个实现决策,并且默认行为可能随时更改.我意识到我可以使用修改它[StructLayout] 和 [FieldOffse ..
发布时间:2021-12-23 17:02:59 C#/.NET

MVVM 绑定到 CLR 事件

如何使用 mvvm 模式绑定到 CLR 事件? 对于路由事件,我使用 Cinch 框架中的 EventToCommandTrigger,效果很好. 我查看了 行为和效果Expression Blend Samples 看起来像 DataEventTrigger 是我应该使用的,但该示例有点令人困惑. 我希望 IsVisibleChanged 事件触发我的 IsVisibleCha ..
发布时间:2021-12-23 13:24:53 其他开发

从 C++/CLI 项目创建纯 MSIL 程序集?

我正在尝试使用/clr:pure 和/clrimagetype:pure 标志从 C++/CLI 项目创建纯 MSIL 程序集,但是,输出程序集专门针对 x86. 我是否遗漏了任何可能阻止我的项目仅编译为 MSIL 的内容? 解决方案 您可以使用 C++/CLI 创建 AnyCPU dll,但在最简单的情况下,您将不能使用 MFC、ATL 或 CRT.但是,如果您只想在 C++/CL ..
发布时间:2021-12-22 18:46:38 其他开发

在 C++/CLI 中,帽子字符 ^ 有什么作用?

我正在阅读 Ivor Horton 的 Beginning Visual C++ 2008 并且其中的许多 CLR 示例都对 main 有以下定义: int main(array ^args) 我一页一页地回到书的开头,找到第一个这样的例子,并解释了它的真正含义,但找不到. 显然它和标准的 int main(int argc, char *argv[]) 意思相同,但我想知道什么时候以及 ..
发布时间:2021-12-22 18:16:17 其他开发

为什么 Random.Next() 总是返回相同的数字

考虑这个方法: private static int GenerateRandomNumber(int seed, int max){返回新的随机(种子).下一个(最大);} 在我的机器上,执行这个循环通过 1500 次迭代产生相同的数字: for (int i = 0; i 每次迭代我得到 145156561. 我没有紧迫的问题,我只是对这种行为感到好奇,因为 .Next(ma ..
发布时间:2021-12-21 15:51:52 C#/.NET

.NET 中的 String 和 Char 类型如何存储在内存中?

我需要存储一个语言代码字符串,例如“en",它总是包含 2 个字符. 将类型定义为“String"还是“Char"更好? 私有字符串语言代码; 对比 private char[] languageCode; 或者还有其他更好的选择吗? 这两个是如何存储在内存中的?分配值时将分配多少字节或位给它们? 解决方案 它们的存储方式 string 和 char[] 都存储在 ..
发布时间:2021-12-21 10:13:29 C#/.NET

C# 有内联属性吗?

C# 是否可以内联访问属性?我知道用于内联的 JIT 有 32 字节(指令?)限制,但它会内联属性还是只是纯方法调用? 解决方案 这取决于 JIT(据我所知,C# 编译器不进行任何内联),但我相信 JIT 会内联琐碎的属性大多数情况下. 请注意,它不会内联从 MarshalByRefObject 派生的类型成员,其中包括 System.Windows.Forms.Control(通过 ..
发布时间:2021-12-20 16:27:19 C#/.NET

为什么 String.Concat 没有针对 StringBuilder.Append 进行优化?

我发现编译器将常量字符串表达式的连接优化为一个字符串. 现在只有在运行时才知道字符串的字符串连接,为什么编译器不优化循环中的字符串连接和超过 10 个字符串的连接以使用 StringBuilder.Append 代替?我的意思是,有可能,对吧?实例化一个 StringBuilder 并获取每个连接并将其转换为 Append() 调用. 是否有任何理由为什么这应该或可以不被优化?我错过了 ..
发布时间:2021-12-20 16:23:57 C#/.NET

自动创建空的 C# 事件处理程序

无法在 C# 中触发没有附加处理程序的事件.所以每次调用前都要检查事件是否为空. if ( MyEvent != null ) {MyEvent( param1, param2 );} 我想尽可能保持我的代码干净并摆脱那些空检查.我认为它不会对性能产生太大影响,至少在我的情况下不会. MyEvent( param1, param2 ); 现在我通过手动向每个事件添加一个空的内联处理程序来解 ..
发布时间:2021-12-19 22:53:15 C#/.NET

有没有办法使用 win API 获取 HRESULT 值的字符串表示?

win API 中是否有一个函数可以用来提取 HRESULT 值的字符串表示? 问题是并非所有返回值都记录在 MSDN 中,例如 ExecuteInDefaultAppDomain() 函数没有记录为返回“0x80070002 - 系统找不到指定的文件.",但是,它确实如此!所以,我想知道是否有一个函数可以在普通情况下使用. 解决方案 您可以使用 _com_error: _com_ ..
发布时间:2021-12-18 00:04:06 C/C++开发

将泛型类型参数显式转换为任何接口

在 泛型常见问题解答:最佳实践中说: 编译器允许您将泛型类型参数显式转换为任何接口,但不能转换为类: interface ISomeInterface{...}类 SomeClass{...}class MyClass{void SomeMethod(T t){ISomeInterface obj1 = (ISomeInterface)t;//编译SomeClass obj2 = (Som ..
发布时间:2021-12-15 09:49:41 C#/.NET

为什么 C# 泛型不能像在 C++ 模板中那样从泛型类型参数之一派生?

为什么 C# 泛型不能像在 C++ 模板中那样从泛型类型参数之一派生?我的意思是我知道这是不可能的,因为 CLR 不支持这个,但为什么呢? 我知道 C++ 模板和 C# 泛型之间的深刻区别 - 前者是编译时实体,必须在编译期间解析,而后者是第一类运行时实体. 仍然,我没有看到原因为什么 CLR 设计者没有想出一种方案来最终使 CLR 泛型类型能够从其泛型类型参数中的一个派生.毕竟,这将 ..
发布时间:2021-12-15 09:36:12 C#/.NET

异步迭代器 Task>

我正在尝试实现一个返回迭代器的异步函数.思路如下: 私有异步任务>测试异步(字符串测试字符串){foreach(testString.ToCharArray() 中的字符 c){//做其他工作收益率c;}} 但是有一个错误提示,该函数不能是迭代器块,因为Task不是迭代器接口类型.有解决办法吗? 解决方案 听起来您可能真正需要的是 IObservable,有点像基于推送的异步IEnu ..
发布时间:2021-12-14 20:16:31 C#/.NET

使用/不使用 JCL 在 Delphi 中托管 CLR - 示例

有人可以在这里发布一个如何在 Delphi 中托管 CLR 的示例吗?我在这里阅读了类似的问题,但我不能使用 JCL 作为我想在 Delphi 5 中托管它.谢谢. 编辑:这篇文章关于在 Fox Pro 中托管 CLR 看起来很有希望,但我不知道如何从 Delphi 访问 clrhost.dll. 编辑 2: 我放弃了 Delphi 5 的要求.现在我正在使用 Delphi 7 尝试 ..
发布时间:2021-12-13 22:55:10 C#/.NET

如何在 Unity 中使用不安全的上下文

我想在 c# 中使用 c++ 代码 for Unity 使用 CLR.​​ 程序在 unity 之外正常工作,但在引擎内部它给了我一个错误: “cs0227:不安全代码需要指定“不安全"命令行选项" 我真的很困惑,因为该项目在visual studio中成功构建(没有任何错误或警告).我有“允许不安全"按钮已激活. 使用UnityEngine;使用 System.Collectio ..
发布时间:2021-12-11 17:43:04 C#/.NET

静态泛型类作为字典

泛型类中的静态字段对于泛型参数的每个组合都有一个单独的值.因此,它可以用作 Dictionarywhatever> 这比静态 Dictionarywhatever> 好还是差? 换句话说,这些实现中哪个更有效? public static class MethodGen;{public static readonly Action方法 = CreateMethod();静态动作 ..
发布时间:2021-12-10 16:07:24 C#/.NET