在VB.NET中,您可以实例化并立即使用如下数组:
Dim b as Boolean = {"string1", "string2"}.Contains("string1")
然而,在c#中,您似乎必须这样做:
bool b = new string[] { "string1", "string2" }.Contains("string1");
c#是否有等效的速记语法,可以使用类型推断来确定数组的类型,而不必显式声明它?
嗨,我想知道为什么通常的图形速度在C#代码中比VB6慢得多,这是一个在VB6和C#中做同样事情的示例代码,它在我的电脑上的VB6中需要1.7秒,在C#中需要4.2秒。有人能告诉我为什么吗,还有c#中有没有更好和更快的方法。
谢谢
C#代码
Bitmap MyBitmap = new Bitmap(1024, 768);
Graphics g = Graphics.FromImage(MyBitmap);
DateTime STime = DateTime.Now;
Pen MyPen = new Pen(Color.Black);
for (int i = 0; i < 100000;
我正在将windows窗体应用程序从VB转换为C#。
简而言之,我在formLocation()类中有一个方法,传入一个表单(在双击时触发),该表单可以重置为MainForm的MDIChild。由于某些原因,此VB代码无法转换为C#。这迫使我创建一个新的MainForm实例,这并不理想,因为子窗体必须放入当前的MainForm实例中。这是VB代码:基本上我只需要C#的等价物:
Public Sub contain(ByVal form As Form)
With form
.MdiParent = MainForm
End With
End Sub
我正在使用Microsoft.Office.Interop.Excel命名空间,并且正在创建一个图表。在某个时刻,我想检索某个序列的值。在上,它说明Series对象有一个属性Values。这将返回一个Range对象或一个array of values,我假设是一个object[]。在我的代码中,我有以下语句:
Series series = (Series)chart.SeriesCollection(i);
object[] values = (object[])series.Values;
我得到一个包含以下消息的InvalidCastException:Unable to cast ob
我们有一个应用程序,点击一下按钮就可以从一个c#窗体启动一个VB模式对话框。即使VB对话框是一个模式窗口,我们仍然能够在单击时返回到C#对话框,然后应用程序就会挂起。
看起来VB6表单没有父级,因此出现了问题。因此,我们决定将表单句柄从c#传递给VB,并将c#对话框作为VB对话框的父级。任何帮助或示例代码都将不胜感激。
在c#对话框中单击search后,我们将其命名为:
gPMSearch.Search();
Search类在VB中:
Private Sub Class_Initialize()
'Load the search form
Set Form = New
我有两个项目,
我有一个空白表单的第一个项目C#项目(新项目)。我将此表单编译为dll,以便可以引用该表单。
VB项目是一个ExcelDNA项目,它由一个自定义任务窗格组成,其中有一个用于打开窗体的按钮,任务窗格工作得很好。然而,当我点击Button时,我得到了以下错误:
System.IO.FileNotFoundException: Could not load file or assembly
我可以通过在VB项目中创建一个UserControl,然后通过按钮访问它来让它工作,但是我已经用C#编写了表单,不想将它转换为VB。
通常我是用C#写的,但今天我用VB写了。
我的代码是这样的:
FormTest.Left = 1000
If FormTest.Visible Then
FormTest.BringToFront()
Else
FormTest.Show()
End If
它不起作用。
当我在Show()之后移动带有setting Left属性的零件时-它起作用了。
If FormTest.Visible Then
FormTest.BringToFront()
Else
FormTest.Show()
End If
FormTest.Left = 1000
然而,窗口会在
我尝试将Visual Basic (VB)项目转换为C#,但我不知道如何更改下面的一些代码。
在窗口窗体中,一个字段和一个定时器对象定义如下;
Public WithEvents tim As New Timer
...
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tim.Tick
End Sub
...
如何在C#中重写这几行?
我有一个托管的C++ DLL使用WINSOCK。在接收时,它通过CWnd ()向PostMessage*发送自定义消息。当从非托管C++调用时,这很好。在使用以下代码进行构造之后,目标CWnd *将注册到C++类:
// Registers a window (CWnd *) to receive a message when a valid
// incoming data packet is received on this UdpRetrySocket.
void CUdpRetrySocket::RegOnReceive(CWnd *i_pOnReceiveWnd, UINT i_R
我来自c#背景,正在将vb.net windows窗体应用程序转换为c#。我有一个名为associateForm的windows窗体。在代码中,开发人员引用的关联表单如下:
Private Sub NotifyIcon1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles EMS.MouseDoubleClick
If e.Button = Windows.Forms.MouseButtons.Left Then
If ass