Tag: .net

collections被修改; 枚举操作可能无法执行 – 为什么?

我正在枚举实现IList的集合,在枚举期间我正在修改集合。 我收到错误,“收集已被修改;枚举操作可能无法执行。” 我想知道为什么在迭代期间修改集合中的项时会发生此错误。 我已经将我的foreach循环转换为for循环,但我想知道发生此错误的原因的’详细信息’。

Casting List – 协方差/逆变问题

给出以下类型: public interface IMyClass { } public class MyClass : IMyClass { } 我想知道如何将List转换为List ? 关于协方差/逆变主题,我并不完全清楚,但据我所知,由于这个原因,我不能仅仅清楚地列出清单。 我只能提出这个微不足道的解决方案; 缺乏优雅,浪费资源: … public List ConvertItems(List input) { var result = new List(input.Count); foreach (var item in input) { result.Add(item); } return result; } …. 你怎么能以更优雅/高效的方式解决它? ( 请注意,我需要.NET 2.0解决方案,但为了完整性,我也很高兴看到使用更新框架版本的更优雅的解决方案。 )

C#:同步两个RichTextBox的滚动位置?

在我的应用程序的表单中,我有两个RichTextBox对象。 它们将始终具有相同数量的文本行。 我想“同步”这两者之间的垂直滚动,这样当用户在一个上改变垂直滚动位置时,另一个滚动相同的量。 我该怎么做呢?

关键事件:ProcessCmdKey

我试图在一个小的测试Windows窗体应用程序上发生一些键盘响应,我有一个粗略的解决方案,它是覆盖ProcessCmdKey。 但是,我遇到了几个问题,而且我发现了一些不一致的问题。 不同的事件:有没有办法告诉参数ref Message msg, Keys keyData ,是否是KeyDown,KeyUp或KeyPress? KeyPress:我看过的任何地方都说KeyPress,即重复的键盘输入,只发生在字符键上,箭头键不是。 但是,事件处理程序被频繁地调用,并且在相同的mannor /具有相同的行为中,箭头键作为字符键。 这是面对KeyPress事件,还是其他什么? 理想情况下,我喜欢在表单级别处理所有键盘事件而不让它们传递给表单上的控件的方法。 但是,所有文档都让我感到困惑,并错过了关键点,因此我无法完成此操作。 欢迎任何这些主题的帮助。 谢谢!

当从List inheritance类时,XmlSerializer不会序列化其他属性

我在这里有一个情况,我需要从Listinheritance我的类,但是当我这样做时,XmlSerializer不会序列化我的类中声明的任何属性或字段,以下示例演示: public partial class Form1 : Form { public Form1() { InitializeComponent(); DoSerialize(); } private void DoSerialize() { MyClass obj = new MyClass(); obj.Add(1); obj.Add(2); obj.Add(3); XmlSerializer s = new XmlSerializer(typeof(MyClass)); StringWriter sw = new StringWriter(); s.Serialize(sw, obj); } } [Serializable] [XmlRoot] public class MyClass : List { public MyClass() { } int myAttribute = […]

C#.net如何反序列化JSON的复杂对象

我有一个JSON字符串,我需要一些帮助来反序列化它。 没有什么对我有用..这是JSON { “response”: [{ “loopa”: “81ED1A646S894309CA1746FD6B57E5BB46EC18D1FAff”, “drupa”: “D4492C3CCE7D6F839B2BASD2F08577F89A27B4ff”, “images”: [{ “report”: { “nemo”: “unknown” }, “status”: “rock”, “id”: “7e6ffe36e-8789e-4c235-87044-56378f08m30df”, “market”: 1 }, { “report”: { “nemo”: “unknown” }, “status”: “rock”, “id”: “e50e99df3-59563-45673-afj79e-e3f47504sb55e2”, “market”: 1 } ] }] } 我有一个类的例子,但我不必使用这些类,我不介意使用其他类。 这些是类: public class Report { public string nemo { get; set; } } public class […]

在C#中自动导入嵌套的命名空间

对不起,如果已经问过这个问题。 我开始研究C#并注意到C#不会自动导入嵌套的命名空间。 我不明白: using System; 应该自动导入System命名空间中包含的所有类吗? 所以我不需要写 using System.Windows.Form; 我会理解如果using Windows.Form甚至工作。 但是编译器无法解决它! using System;什么意义using System; 之前呢? 那么为什么要using System; 不自动导入System.Windows以及System.Windows.Forms – 对不起,如果这里的单词导入错误…也许移动到全局命名空间是正确的术语。

GUI和Windows服务通信

我知道自Vista以来,C#无法直接将UI表单挂钩到Windows服务。 这是在Microsoft网站上说明的。 我在这方面的问题是:“从用户界面到服务的最佳通信方式是什么?” 我听说过远程处理,Web服务和直接TCP。 还有其他方法吗? 他们如何与前面提到的方法进行排名? 他们实施起来有多复杂? 我的应用程序是用于Intranet,而不是Internet。 微软平台将是双方的,因此互操作性不是一个因素,但速度是。 我的意思是我想要在网络上获得最小的数据包。 TIA

在.msi安装程序中包装C#应用程序

我在Visual Studio 2017中创建了一个C#应用程序。现在我想将我的应用程序作为单个Windows安装程序文件分发。 我希望有一个简单的一键式解决方案(选择我要包含的所有文件 – >瞧!这是安装程序)。 但它似乎并不那么容易:-( 我经常读到Visual Studio支持安装项目。 但这似乎不再是这种情况了,对吧? 第三方工具要么非常复杂(例如Wix,Inno Setup),要么非常昂贵(例如Advanced Installer)。 是否真的没有简单的方法来包装.msi Windows安装程序中的某些文件? Microsoft是否不提供创建此类安装程序的工具?

Windows 10操作系统上的Windows窗体图形问题

当我在Windows 10中运行任何Windows窗体应用程序时,窗口内的图形看起来是扭曲的: 在设计时,这不会发生: 有没有人经历过这个? (请打开图片以便更好看。)