List<Object>是ArrayList的良好替代品吗?
ArrayList我在旧版紧凑型框架代码中使用的 ArrayList似乎在newfangled(.net 4.5.1)代码中都没有可用. 我在其中存储自定义类的实例. 什么是好的替代品 - List,还是更合适的东西? 解决方案 如@highcore在他的评论中所述,您应该使用列表的通用形式,List.如果您有几个类别的类别,则需要在该列表中包含一些类别,则它们可能具有共同的属性,方法.在这种情况下,您可以为一组类的abstract课程. List是可能的替代品,但不是一个好的替代品. 其他解决方案 是,List是一个很好的替换 ArrayList . 如果您想拥有可以存储任何内容的列表类型,则可以将ArrayList或List用作集合类型.它将具有相同的性能和行为特征. 问题是:为什么要使用ArrayList开始?如果您来自.您要么具有强烈键入的数组(大小的恒定数组)
14 2024-04-26
编程技术问答社区
使用zipstorer类压缩一个有子文件夹的文件夹
我正在使用 zipstorer 类库来压缩文件.我能够通过调用zip.AddFile过程来缩减文件.但是我想扎带,其中也有子文件夹.因此,由此产生的zip文件应正常内部的zip文件内有文件夹和子文件夹结构.我无法做到.如果我通过循环所有文件夹和子文件夹来处理每个文件,则如果调用zip.Addfile,则将导致zip文件,其中所有文件中的所有文件都没有目录结构. 因此,如何使用zipstorer类链度将文件夹缩回.我必须做什么变化? 解决方案 您可以使用(Back)斜杠作为_filenameInZip(SIC)参数来在zip中的目录中添加文件: zip.Addfile(,,"directory/filename.txt",); 或 zip.Addfile(,,"directory\\filename.txt",);
14 2024-04-26
编程技术问答社区
在Windows Server 2008R2 64bit中,.NET System.Drawing与所有其他窗口的差异(图像在2008R2-64中被破坏,但其他窗口没有)。
我已经为已安装的Windows Server 2008R2 64bit(x86)的开发PC提供了,因此它被用作工作站.我的开发环境是VS2008 Targeting .Net3.5(是, 2008 !!!) 在我们的网站(现在已经有几年了)中,有一个内部开发的验证码. 为了简短的简短故事, letters 未在我的开发机2008R2-64上输出,而是在所有其他窗口上(我们的测试和实时服务器是2003 64bit)和Virtual PC(2008 32bit不是R2,XP,Win7). 我已经在网上看到了一些帖子,说出像素的测量方式 ymige 已经改变了(很难确定),但没有其他内容. 这是一个小的Web应用程序,可以说明问题. using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControl
4 2024-04-26
编程技术问答社区
转换委托为Action<T> (Action<T1,T2>)
我有一个DB类,可以像以下所有DB呼叫: public delegate void Part1_Callback(string message); public delegate void Part2_Callback(DataTable dt); public delegate void Part3_Callback(DataTable dt, int x, int y); public delegate void ErrorHandler(string message); public class CommandAndCallback { public SqlCommand Sql { get; set; } public TCallback Callback { get; set; } public ErrorHandler Error { get; set; } } class DB : SingletonBase
10 2024-04-26
编程技术问答社区
如何使用excel的rowindex将特定的excel行插入到datagridview?
我正在使用小C#应用程序在Excel workbook中进行搜索 使用以下方法 public void SearchExcelFiles(string FilePath) { string ConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\";"; Microsoft.Office.Interop.Excel.Application oXL = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook oWB; Microsoft.Office.Interop.Excel.Range currentFind = null; Micro
14 2024-04-26
编程技术问答社区
显示在面板上的图标的平滑移动
我正在编码一个应用程序,其中我在system.windows.forms.panel上使用类似的代码显示system.drawing.icon对象: Graphics g = _panel.CreateGraphics(); g.DrawIcon(this.NodeIcon, _rectangle); 我有代码可以使用拖动-N-Drop将图标移动. 我的问题是,当用户将图标移动时,一切都很平滑. 图标看起来很扭曲,直到用户停止移动图标为止. 我试图在网上找到有关此信息的信息,但我无法使它变得平稳. 我以前几乎没有这种特殊的编码经验(使用图形),所以我是新秀. 如果任何善良的灵魂可以帮助我一些提示,这将不胜感激. 预先感谢! 解决方案 我相信您要做的是重新制作对Mousemove活动处理程序的控制.看起来您的问题是重新绘制面板时的闪烁.首先,您可以尝试做的是将真实设置为public class TestPanel : Panel { public Tes
10 2024-04-26
编程技术问答社区
需要帮助建立Linq.Expression到Enumerable.GroupBy的关系
我正在尝试生成一个表达树,该表格最终调用了一系列枚举类型的groupby方法. 以简化的形式我正在尝试这样的事情: IEnumerable list = new List{new Data{Name = "A", Age=10}, new Data{Name = "A", Age=12}, new Data{Name = "B", Age=20}, new Data{Name="C", Age=15}}; Expression data = Expression.Parameter(typeof(IEnumerable), "data"); Expression arg = Expression.Parameter(typeof(Data), "arg"); Expression nameProperty = Expression.PropertyOrField(arg, "Name"); Expression gro
6 2024-04-26
编程技术问答社区
在日期列和整数列中插入空值
我正在使用C#并开发Winform应用程序.我有一个具有项目属性的项目类. 项目类的构造函数如下: newProject = new Project(GCD_ID.IsNull() ? (int?)null : Convert.ToInt32(GCD_ID), txt_Proj_Desc.Text, txt_Prop_Name.Text, ST.ID.ToString().IsNull() ? null: ST.ID.ToString(), cmbCentre.Text, SEC.ID.ToString().IsNull() ? null : SEC.ID.ToString(), cmbZone.Text, FD.ID.ToString().IsNull() ? null : FD.ID.ToString(), DT.ID.To
0 2024-04-26
编程技术问答社区
串行端口和ObjectDisposedException安全手柄已被关闭
我正在从一个通过串行端口发送信息的设备中接收数据,我得到了此例外:" ObjectDisposedException安全句柄已关闭".它可能会在几秒钟到几分钟之内发生,并且似乎没有模式.发生的另一件事是,它将停止接收数据,而我可以在"线程已退出的VS IDE输出窗口"选项卡中看到.我不知道为什么还这样做. 这是我创建串行端口的方式: DeviceSerialPort serialport = new DeviceSerialPort("COM1", 9600, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One); serialport.RHDataReceived += new EventHandler(SerialPort_RHDataReceived); serialport.Open(); 这是串行端口代码: namespace Instrumen
2 2024-04-26
编程技术问答社区
在xml中存储DataRelation?
我正在使用一种新方法设计DB应用程序. (对我来说至少是小说... :)) 所以我正在做一些研究. 我正在使用.NET 3.5 ADO.NET数据集使用数据并将其离线存储在XML中. 首先,这种方法对严重(尽管小db,4-5个用户,〜25表〜3-4k记录)是否有用? 第二,我如何准确地将数据汇编存储在离线XML文件中? 谢谢! saurabh. 解决方案 25表,每条都有3-4k行,这不是我所说的XML"小";特别是,跳到XML中的正确数据并不容易... 您是否考虑过数据库,例如SQL Server Express Edition.免费,不仅仅是这份工作. RE存储;如果您使用的是内置序列化a DataSet,则应该自动工作.当然,XML将特定于DataSet ...老实说,我不建议DataSet/XML方法. 其他解决方案 要回答您的问题(即使我同意MARC,您也不应该将XML用作数据存储层). ids和hrefs通
6 2024-04-26
编程技术问答社区
在IIS7 .NET 3.5上出现错误请求400
我在IIS7上遇到了不良请求错误400.我已经在URL字符串中编码了特殊字符.我的URL看起来像这样(不喜欢%26): http://www.myjobs.com/a/q-Barnes+%26+Noble 如果我在.NET 4.0上运行,这将是一个简单的修复,但是我在Rackspace Cloud上,只能在IIS7 .NET 3.5上运行. . 如果我在IIS7 .NET 4.0: 上,这就是我在web.config中使用的. requestPathInvalidCharacters="" 在IIS7和.NET 3.5上运行时还有哪些其他选项? 解决方案 如果您更改注册表,则唯一可以提出请求的方法. 对于以32位模式运行的IIS,添加以下dword键并将其值设置为1 hkey_local_machine \ Software \ Microsoft \ asp.net \ verification Compatibility 如果您在64位模式下运行I
14 2024-04-26
编程技术问答社区
新工艺中的产卵形式
我最初创建了一个Windows表单,以作为我项目主要形式的对话框.现在,对话框变得足够复杂,需要在自己的过程中开始.有没有办法在代码中执行此操作,或者我需要创建一个新项目并将文件链接到它? 解决方案 我在这里质疑前提 - 没有理由在单独的过程中启动新的"形式".但是,如果表格变得如此复杂,我建议您简化它,如果除了可用性以外没有其他原因. 话虽如此,您始终可以通过 process.start 在代码中.如果您希望它在同一项目中,但启动一个单独的过程,则可以使用命令行参数启动执行EXE,该参数允许您切换在启动时加载的"表单". 其他解决方案 您需要设置一个通信层(使用命名管的WCF可能是最好的方法). 但是我会严重质疑为什么您需要一个新的过程?确保您在表单上所做的任何工作都在单独的线程上完成.这样,您可以打开数十种表格,但您的应用程序将保持响应迅速. 这不是最好的解决方案,但是如果您试图避免重写,请致电Application.DoEvents会泵送消息队列,
2 2024-04-26
编程技术问答社区
在C#中只修改超链接NavigateUrl的路径部分
我想修改Hyperlink控制的NavigateUrl属性.我需要保留Querystring,但要更改超链接URL的路径. 沿着这些行: var control = (Hyperlink) somecontrol; // e.g., control.NavigateUrl == "http://www.example.com/path/to/file?query=xyz" var uri = new Uri(control.NavigateUrl); uri.AbsolutePath = "/new/absolute/path"; control.NavigateUrl = uri.ToString(); // control.NavigateUrl == "http://www.example.com/new/absolute/path?query=xyz" Uri.AbsolutePath是不读的(没有定义的设置器),因此此解决方案无法正常工作. 在离开
0 2024-04-26
编程技术问答社区
注销后在Windows服务中运行批处理文件
我在C#.NET 3.5中写了Windows服务. 它会自动启动并作为本地系统用户运行(无需登录). 如果我通过致电process.start()在服务中运行关闭批处理(shutdown -s -t 30),则直到登录到Windows之前,什么也不会发生.因此,它等待登录然后开始批处理. 是否可以以登录状态运行此批次? 问候 解决方案 每个服务应用程序都有一个属性,称为Allow Interact With Desktop,应设置True,以使您的服务能够运行Shutdown-Batch-File. 看一下这些链接: 安装Windows Service时与桌面交互 其他解决方案 您是否检查过以确保这不是许可问题?即如果服务作为管理员运行,它是否有效? 您可能还想尝试关闭此问题中提到的替代方法操作率 - 计算机from-c#.
4 2024-04-26
编程技术问答社区
如何使用win32_schedule作业类来安排一个任务
我已经创建了一个计划,该类计划在指定时间进行任务.我知道可以通过win32_schedule类创建方法来实现.有人可以帮助我创建在指定日期和时间打开的任务吗?(代码示例).帮助我使用开始时间参数(转换和所有) 解决方案 它不是代码示例,但可以帮助您: http://social.msdn.microsoft.com/forums/forums/forums/vstudio/vstudio/en-en-us/0222e44429-56bc-56bc-444882c -9A67-AF484D6978C1/使用windows-scheduled-tasks-in-c?论坛= csharpgergeneral
6 2024-04-26
编程技术问答社区
在一台装有.net 4.0的计算机上-能否测试出一个应用程序可以在.net 3.5上运行?
我正在尝试将一个应用程序从.NET 4.0移植到.NET 3.5.但是,仅在Visual Studio中更改它是不够的,许多参考文献仍为.NET 4.0. (请参阅在这里示例.) so-是否有一种方法可以使用我的计算机来测试该应用程序仅在3.5的计算机上运行,​​即使我的计算机也已安装了.NET 4? 解决方案 nope. 首先不是MS提供的.功能是向后兼容的.如果它们是前向兼容的,那么您就不会问这个问题,而且我们不会进步. = D 也没有向后的项目转换器. 其次,要进行良好的测试,您确实需要清洁的环境,而没有任何情况都可以参考未安装的组件. 您唯一的赌注是其他PC​​或VM.安装和使用其他解决方案 好的,很抱歉.现在,我了解得更好. 您可以同时安装多个.NET版本,在控制面板中启用/禁用它们. 请参阅: msdn hth
4 2024-04-26
编程技术问答社区
无法从.NET 4.5到.NET 3.5解密索赔cookie
我一直在试图使以下场景工作大约一周,但没有运气.我有2个应用程序,一个.NET 4.5启用索赔的应用程序,它们运行良好(与其他.NET 4及以上的应用程序一起使用);以及使用WebForms .NET 3.5构建的Legacy Intranet系统.传统应用程序不能升级到以后版本的.NET(要容易得多). 我想发生的事情是,当我在.NET 4.5应用程序上登录时,当我访问.NET 3.5应用程序时,我需要对我进行身份验证.我确保了应用程序之间的cookie名称是相同的,并且web.config中的MachineKey值是相同的(我正在使用MachineKeySessionSecurityTokenHandler来确保即使在Web Farm场景中,也可以确保加密的cookie值相同);但是,发生的事情是,当我转到.NET 3.5应用程序时,我会从Symmetricencryptigntermentformatter类中获得以下错误: id0006:输入字符串参数为null或空名
8 2024-04-26
编程技术问答社区
将文件上传到服务器后,无法从客户端删除该文件
我正在使用ASP:FileUpload控件将文件上传到服务器.那里没什么好看的,只是 FileUploadId.Save(); 文件成功上传,一切都很好,直到我尝试在客户端上删除该文件为止.我得到了一个很好的"文件或程序正在使用"消息. 上传后,如何确保该文件在客户端上没有访问? 编辑 删除文件与应用程序无关.我只是想手动删除文件,因为我不再需要它. edit2 关闭浏览器解决了问题...有什么想法吗? 解决方案 由于问题同时发生在IE和FF中:可能是该文件被某些防病毒软件锁定吗? 其他解决方案 问题可能是即使上传后,ASPNET进程也可以锁定文件.关闭IE后,ASPNET进程发布文件 其他解决方案 您如何尝试在客户端删除文件?除非您在WebBrowser中托管或使用诸如ActiveX控件之类的内容,否则您只在客户端中具有JavaScript - 并且不提供随机文件访问. so:这里的完整设置是什么?
0 2024-04-26
编程技术问答社区
通过linq-to-sql插入超过3mb的图片
新的一天,新问题: - ) 代码: 客户端: void abw_Closed(object sender, EventArgs e) { DbServiceClient sc = new DbServiceClient(); abw = (AddBlobWindow)sender; fi = ((AddBlobWindow)sender).fi; if ((bool)((AddBlobWindow)sender).DialogResult) { blob = new Blob(); binBlob = new Binary(); binaryBlob = new byte[fi.Length]; int n = fi.OpenRead().Read(binaryBlob,0,Convert.ToInt32(fi.Length)); binBlob.By
2 2024-04-26
编程技术问答社区