Tag: vb.net

移植VB.NET Winforms应用程序到C#

将VB.NET winforms应用程序移植到C#有什么“好”的资源吗? 我确信有软件只是翻译代码,但我希望同时重构代码。 保持它当前的forms是有问题的,因为它使用了VB.NET允许的一些“糟糕的设计”实践,并且会进一步使未来的维护变得复杂。 这里有没有人经历过这个过程,你是怎么做的? 你使用翻译/重构方法了吗? 您是否只是使用最终产品来重新创建function而不查看大部分当前的代码库? 你(集体)推荐什么? 更新 : 正如我告诉Grauenwolf一样,用当前语言保留它会出现以下问题: 无法轻松添加function。 VB.NET不是一种我坚如磐石的语言。我很欣赏学习语言的讽刺意味 – 但未来的维护将需要考虑那些不懂VB.NET的人。 应用程序的其余部分已移植到C#(事实上很久以前); 我们想要添加的所有function都取决于解耦应用程序(现在它非常紧密耦合)。 我的选择是用一种我不太熟悉的语言重构它,或用我理解的语言重构它。 对于投票问题的任何人,我都不确定你为什么这样做; 关注的不是我是否应该将其留在VB.NET中; 关注的是现在没有移植它的未来成本是多少。 如果我要花费大量精力修复它,为什么不采取额外的步骤并使其可以为未来的程序员维护? 作者注 :我多年没有看过这个问题,最近有一个回复,所以我把’回答’移到了问题中并删除了’回答’(因为它不是真的答案)。

多个generics模糊

下面的代码是完全相同的,除了一个是C#,另一个是VB.Net。 C#编译得很好,但VB.Net会抛出警告: 接口’System.IObserver(Of Foo)’与另一个实现的接口’System.IObserver(Of Bar)’不明确,因为’接口IObserver(Of T)中的’In’和’Out’参数 为什么VB.Net显示警告而不是C#? 最重要的是,我该如何解决这个问题? Obs:我正在使用.Net Framework 4和Visual Studio 2010 Ultimate。 VB.Net代码: Module Module1 Sub Main() End Sub Public Class Foo End Class Public Class Bar End Class Public Class Beholder Implements IObserver(Of Foo) Implements IObserver(Of Bar) #Region “Impl” Public Sub OnCompleted() Implements System.IObserver(Of Bar).OnCompleted End Sub Public Sub OnError([error] As System.Exception) […]

如何确定是否因共享冲突而抛出IOException?

我有一个C#应用程序,我想将文件复制到一个新位置。 有时我需要覆盖现有文件。 当发生这种情况时,我收到一个System.IO.IOException。 我想从共享冲突中恢复但是如何确定是否返回了IOException,因为目标文件正在使用而不是其他原因? 我可以查找“进程无法访问该文件,因为它正被另一个进程使用”。 消息……但我不喜欢这个主意。

编译Release和Debug会生成不同的IL代码+不同的机器代码吗?

我听说在Release模式下编译生成的优化代码比在Debug模式下生成,这很好。 但这是IL的优化吗? 一旦CLR运行它,它在机器代码中吗? 是否与在Release和Debug中编译的PE不同的元数据结构? 谢谢

C#相当于VB.NET的Catch ……当

在VB.NET中我经常Catch…When : Try … Catch e As ArgumentNullException When e.ParamName.ToUpper() = “SAMPLES” … End Try 有没有C#等同于Catch…When ? 如果可能的if我不想在catch使用if语句。

在.NET中更改DateTimePicker的背景颜色

在.NET (至少在2008版本中,也可能在2005年),更改DateTimePicker的BackColor属性绝对不会影响外观。 如何更改文本区域的背景颜色,而不是下拉日历的背景颜色? 编辑:我说的是Windows表单,而不是ASP。

4点变换图像

我需要将位图图像的4个角点从一个位置移动到另一个位置。 任何可以在Windows上运行的代码,最好是C#/ VB.NET,甚至可以帮助如何使用像Paint.NET或Photoshop这样的脚本程序。 Java Advanced Imaging API听起来很有希望。 我需要它用于截屏操作系统,它允许你获得这样的效果: 替代文字http://sofzh.miximages.com/c%23/mondoPerspectiveTrans.gif

尝试获取LogWriter类型的实例时出现激活错误,键“”?

我有asp.net网站。 我在网站上添加了Microsoft.Practices.EnterpriseLibrary.Logging.dll引用。 在web.cofig文件中,我定义如下。 当我运行代码exception发生在下面的地方。 defaultWriter = EnterpriseLibraryContainer.Current.GetInstance(); //Activation error occured while trying to get instance of type LogWriter, key “” 怎么解决这个?

如何提高GDI的DrawImage(Unscaled)的性能?

在我的用户控件的绘制处理程序中,我遍历一组预定义的Bitmap对象,并将它们绘制到客户区: C#版本: private void Control_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; foreach (BitmapObj bmpObj in _bitmapObjCollection) { g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location); } } VB.NET版本: Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint Dim g As Graphics = e.Graphics For Each bmpObj As BitmapObj In _bitmapObjCollection g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location) Next End Sub 代码工作正常但是当十几个对象添加到集合时开始陷入困境。 […]

C#与VB.Net中的命名空间引用

在VB.Net中你可以做如下的事情,没有任何问题…只是忽略这是一个非常无用的类的事实:-) Imports System Public Class Class1 Public Shared Function ArrayToList(ByVal _array() As String) As Collections.Generic.List(Of String) Return New Collections.Generic.List(Of String)(_array) End Function End Class 但是如果你在C#中做同样的事情…… using System; public class Class1 { public static Collections.Generic.List ArrayToList(string[] _array) { return new Collections.Generic.List(_array); } } 您将在“Collections.Generic.List”上返回“无法找到类型或命名空间名称’集合’(您是否缺少using指令或程序集引用?)”行中出现错误。 我知道你必须实际使用System.Collections.Generic的using指令才能使用List,但我不知道为什么 。 我也不明白为什么我在函数声明中没有得到相同的错误,只是在return语句中。 我希望有人可以解释这一点,甚至可以将我推荐给解释它的technet页面。 我四处搜寻,但找不到任何解释这个概念的东西。 编辑:请注意,问题实际上是关于子命名空间的引用,例如在示例中能够引用系统中的集合。