Tag: vb.net

c#switch语句比vb.net’case’更有限

我在这里读了一篇有趣的文章,它对vb.net中的’case’语句与C#中的’switch’语句提出了一个有趣的观点,我在下面粘贴了它: 以下Visual Basic Select Case语句无法使用单个switch语句在C#中表示: Dim Condition As Integer = 55 Select Case Condition Case 1, 3 To 5, 10, 12, 14, Is > 50 ‘value 55 executes code here Case Else ‘values <1, 2, 6-9, 11, 13, 15-49 End Select 我总是在C#中找到switch语句,在每种情况下都有一个中断和后续的中断请求,有点笨拙。 有没有理由他们没有增强switch命令来允许这些情况? 无论如何,什么时候会有用呢? 任何人都知道构造的任何扩展,以允许更多的灵活性? 干杯

.NET StringBuilder预先填充了一行

我知道.NET中的System.Text.StringBuilder有一个AppendLine()方法,但是,我需要在StringBuilder的开头预先附加一行。 我知道你可以使用Insert()来附加一个字符串,但我似乎无法使用一行,是否有我可以使用的下一行字符? 我使用的是VB.NET,所以答案更可取,但C#中的答案也可以。

C#到VB.NET:**默认**关键字?

可能重复: generics的默认值 好的,所以在将一些代码从C#转换为VB.NET时,我遇到了默认关键字,而我只是简单地替换它。 这是正确的方法吗,或者该关键字是否有更好的“翻译”?

C#中的MyClass等价物

在查看这个问题时 ,评论者@Jon Egerton提到MyClass是VB.Net中的关键字。 从未使用过它,我去找了它的文档 : MyClass关键字的行为类似于一个对象变量,它引用最初实现的类的当前实例。 MyClass与Me类似,但是对它的所有方法调用都被视为方法是NotOverridable。 在某些特定场景中,我可以看到它有多么有用。 我无法想到的是,你如何在C#中获得相同的行为 – 也就是说,确保调用虚方法myMethod实际上是针对当前类中的myMethod调用的,而不是派生的myMethod (也就是IL,调用call而不是callvirt )? 我可能只是有一个完整的心理空白时刻。

Windows服务中线程内的计时器

我无法弄清楚如何以最好的方式解决这个问题。 现在我有一个Windows服务,其唯一任务是从具有特定DSN的数据库中收集数据,然后在数据有效时发送电子邮件。 该服务包含一个计时器,每5分钟计时一次,并执行上述任务。 现在我需要重新编写Windows服务才能在1个以上的DSN上运行。 我想在windows服务中创建几个线程,然后在每个线程内再次有一个seperat计时器。 这是一个好主意,如何做到这一点? 我想避免为每个DSN提供Windows服务。 如果我没有任何意义,我会尝试绘制它 Windows Service 线程1(DSN1)—————————–线程2(DSN2)————- ——— Thread3(DSN3) 定时器(每X分钟刻度)—————–定时器(相同)———————- —定时器(相同) 逻辑()———————————————逻辑电 – – – – – – – – – – – – – – – – 逻辑() 希望我的问题有道理:)

ASP.NET从bin文件夹加载非托管dll

问题:我在ASP.NET中使用嵌入式Firebird数据库。 现在,Firebird有一个围绕本机dll的.NET包装器。 问题是,在ASP.NET编译和执行过程中,dll将阴影复制到临时文件夹。 不幸的是,只有.NET dll,而不是本机dll。 有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms366723.aspx 。 现在,这使得必须将非托管dll放在system32目录(或路径环境变量中的任何其他目录)中。 现在,我想更改包装器/本机dll(opensource),因此如果它们只在bin文件夹中,它也会加载dll。 现在,我的问题是,我怎样才能在.NET中从绝对路径加载非托管dll? 绝对路径是在运行时确定的,而不是在编译时确定的…

该项在“Resources”参数中多次指定。 “Resources”参数不支持重复项

在编译我的Visual Studio C#项目时,我收到以下错误: The item “obj\Debug\SampleProject.Forms.MDIMain.resources” was specified more than once in the “Resources” parameter. Duplicate items are not supported by the “Resources” parameter. 但是我在互联网上搜索了很多,但没有一个解决方案适合我。 我试图删除表单并将其重新添加到项目中,但它对我不起作用。 我只有一个resx文件。 我正在使用VS 2010。 此外,我尝试了以下解决方案,但它不适合我: https://stackoverflow.com/a/7928191/2074603 https://stackoverflow.com/a/10066009

是否有任何function或工具(免费)自动完成任何.Net类型名称到完全合格的名称?

我在Visual Studio 2010中使用VB.NET。是否有任何function或工具可以自动完成任何.Net类型名称到完全合格的名称? 我的意思是一个工具/function,实际上将源代码从简短的名称更改为完全限定的名称,如下所示: 从String到System.String 从Process.Start到此System.Diagnostics.Process.Start 更新: 感谢ReSharper的建议。 但我不准备购买它或奖励商业产品的建议。 对不起 。 我应该清楚地说明这个要求。 在问这个问题之前我已经尝试过ReSharper了。

捕获截图包括.NET中的半透明窗口

我想要一个相对无黑客的方式来做这个,任何想法? 例如,以下截图不包括半透明窗口: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown Text = “Opaque Window” Dim win2 As New Form win2.Opacity = 0.5 win2.Text = “Tranparent Window” win2.Show() win2.Top = Top + 50 win2.Left = Left() + 50 Dim bounds As Rectangle = System.Windows.Forms.Screen.GetBounds(Point.Empty) Using bmp As Bitmap = […]

阻止开发人员调用System.Windows.Forms.Application.DoEvents()的最佳方法是什么?

我们花了300个工时来修复现场的一个错误的应用程序。 这一切都归结为调用Application.DoEvents(re-entrancy problem)。 这没有在设计评论,代码评论中发现。 代码是两年前插入的第一个版本; 应用程序总是“不稳定”,但最近的变化在很大程度上暴露了重新入侵问题。 此事件是我们组织中第二次发生Application.DoEvents导致失败和多人工作时间的调试。 在这种情况下,通过简单地注意到调用,在一个异步任务的复杂事件处理程序中埋下来,就发现了它。 你有什么建议可以防止这个问题再次发生: 添加签入门到源代码管理? 开发者培训? 代码分析规则(为什么这不是内置规则?) 如何执行编码练习?