我在c#中有一个项目,它使用了另一个用vb.net编写的项目。我目前可以修改这两个。
我在VB项目中有一个方法,比如:
Public Sub MethodName(ByVal param1 As String, ByRef param2 As String)
param2 = param1 + 1
End Sub
我无法使用C#中的out关键字调用此方法:
public void CallOtherMethod()
{
string param1 ="test";
string param2;
我的VB.NET脚本需要使用一个用C#编写的库,特别是Connect()方法,它有一个out参数,它是一个类。调用库方法的VB.NET代码如下所示: Dim devInfo As DeviceInfoType
myDevice.Connect(ChannelType.DEV_CHANNEL, 0, devInfo) 声明在C#库中的外观: // `ChannelType` is just an enum.
void Connect(ChannelType channel, UInt16 connectMode, out DeviceInfoType devInfo);
public cla
正如我猜的那样,我正在使用一个包含表、VBA模块和VBA类的ms access应用程序。我打算将该应用程序迁移到VB.NET。
然而,这将需要一些时间,我想利用自动化慢慢地将代码转移到VB.NET。
现在,我可以从我的VB.NET应用程序中调用正则子函数和函数,但不知道是否有一种方法可以调用用户定义对象的方法。
简单的例子我想做的事
VBA
'Class1
Public Sub Test()
Print "Hello world"
End Sub
'Module1
Public oClass1 as Class1
Public Sub Init()
S
我找到以下语法作为VB.NET属性,并尝试将其转换为c#,但我不确定如何实现这一点。
Public Property SomeText(ByVal someEnumThing as SomeEnum) As String
Get
Select Case someEnumThing
//figure out what string to return
End Select
End Get
Set(ByVal Value as String)
Select Case someEnumThing
我们在C#中有这样的东西:
public static int ToInt<T>(this T obj) =>
int.TryParse(obj,out int result)?result: -1;
当我们将result传递给TryParse方法时,我们可以声明该方法,vb.NET中是否有类似的方法?
这是用C#编写的原始源代码。
public delegate Unit UnitResolveEventHandler(object sender, ResolveEventArgs args);
public event UnitResolveEventHandler UnitResolve;
public static Unit GetUnitByName(string name) {
Instance.unitsByName.TryGetValue(name, out result);
if (Instance.UnitResolve != null) {
我试图改进VB.net WinForm应用程序的内存使用。但是这个代码不起作用。
<DllImport("kernel32.dll", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True,CallingConvention:=CallingConvention.Cdecl)>
Public Shared Function SetProcessWorkingSetSize (ByVal hProcess As IntPtr, ByVal dwMinimumWorkingSetSize As
我试图从C++/Win32 32 dll调用一个函数,但是每当我调用它时,我都会得到以下错误:
System.AccessViolationException occurred
HResult=-2147467261
Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Source=mscorlib
StackTrace:
at System.StubHelpers.MngdNativeArray
我需要从MySQL应用程序调用VB.NET (5.7)数据库中的存储过程。该过程在结束时生成一个SELECT语句,我需要在我的应用程序中作为一个DataSet检索它。以前,它正常工作,但是我向存储过程添加了一个输出参数,当我调用它时,我得到了以下错误:
{“过程my_database.SP_MY_PROCEDURE的参数数目不正确;预期3,got 2"}
下面是我当前的VB.NET代码:
Public Shared Function CallStoredProcedure(ByVal stringParam As String,
我正在尝试将vb.net代码转换为C#,但在其中一个函数中遇到了optional。
Private Function doOpenConnection(ByRef cn As OleDb.OleDbConnection, ByRef cmd As OleDb.OleDbCommand, ByVal sConnString As String, Optional ByVal sUSP As String = "") As Boolean
似乎VB.Net可以选择将其创建到一个方法/函数中,而不是使用重载。C#是否有类似的等价物,或者我必须为每个可能性创建一个方法?
我在VB.NET里发现了一些奇怪的东西,从来没有注意到.
我在 VB.NET 中有一个具有参数的属性的类,我希望在其他C#类中使用该属性,方法是创建VB.NET类的对象,但类对象没有显示该属性,有人能告诉我是否可以将该属性访问到C#中。
如果是,怎么做?如果不是,CLR是什么意思?
这是我的密码。
Public Property AsString(ByVal name As String) As String
Get
//Some code
End Get
Set(ByVal value As String)
//Some
在C#中,我们有这样的条件赋值:
var test = 1;
var something = (test == 1)? "P":"C";
或
var test = null;
var something = test ?? "";
在vb.net中可以这样做吗?
我使用c#编程,但在这个项目中,我是用vb.net编程的,我不记得是否有可能这样做。
我目前正在将一些代码从VB6.0迁移到VB.NET,并注意到了一个问题。我对VB6.0相当陌生,现在我意识到可以通过以下方法返回多个值:
Function test(str1 As String, str2 As String) As Long
str1 = "Hello World1"
str2 = "Hello World2"
test = 0
End Function
调试时,我可以看到传递的参数现在被更新了。然而,我的问题是,VB.NET似乎没有这样做。我如何在VB.NET中做到这一点?
如有任何建议,将不胜感激。
我有一个Excel函数,它接受许多可选参数,包括一个可选范围:
Function DazBeta(A As Range, Z As Range, _
B As Integer, _
Optional Freq As Integer = 1, _
Optional c As Double = 0, _
Optional r As Range, _
Optional Pct As Boolean = True, _
Optional Label As Integer = 1)
我正在翻译到VB.NET,
也许我只是没有正确阅读MSDN文档,但是给定一个接受一个字符串参数并返回类型T的函数,如何使用Func()将其指定为共享函数?
MSDN说是Func(Of In T1, Out TResult),但它们的所有示例都使用相同的数据类型,即Func(Of String, String)。我想做Func(Of In String, Out T),其中T是任意的(但如果需要的话,我可以通过基类来约束它)。我希望它在类级别上是共享的/静态的,但是封装的类本身并不是泛型类。在这个特定的场景中,似乎不可能做我想要的事情,因为编译器在运行时无法知道类型T是什么。
那么,在VB.net (而不是C#)中对委托或
我正在使用vb.net和oracle db,目前我有一个从我的代码中调用的存储过程。现在它看起来像这样:
CREATE OR REPLACE PROCEDURE MYPROCEDURE(
param1 table.field1%TYPE,
param2 table.field2%TYPE,
param3 table.field3%TYPE,
param4 varchar2,
output OUT number) AS
BEGIN
DO STUFF
END;
我想问一下,是否可以将其更改为一次发送多组参数,这样我就可以在过程中使用FOR循环来最小化调用次数。我想要达到这
通过VB.Net执行SQL Server存储过程存储过程正确执行并返回值。但是,当它通过VB.Net执行时,返回值为-1。
来自VB.NET的源代码
Dim cmdSPStagingToPROD As New SqlCommand
Dim cnStagingToPROD As SqlConnection
Dim SPResponse As String
cmdSPStagingToPROD.CommandType = CommandType.StoredProcedure
cmdSPStagingToPROD.Parameters.Add("@responseMessage"
在中,定义了以下类:
public class Program
{
int n = 0;
public void Print()
{
Console.WriteLine(n);
}
public Program()
{
}
public Program(int num = 10)
{
n = num;
}
}
现在,显然使用new Program()调用构造函数是不明确的,因为第二个构造函数的参数是可选的。在阅读这篇文章时,还不清楚n应该用0还是10初始化。
然而:
对这一问题
使用VB.Net
存储过程如下所示
@Orderno nvarchar(1000)
Select * from table1 where id = ''+@orderno+''
在VB.Net代码中
Dim value as string
Value = "1"
objForm.ViewReport(myReportPath & "rOrder.rpt", "value") `' Showing error on this line`
我尝试使用'"& value
我需要打开excel文件与CorruptLoad参数从powershell脚本。但是当我试图做到这一点时,我会得到一个错误的Exception calling "Open" with "15" argument(s): "open method workbooks class failed"。当我用所有15个参数调用时,这个错误只会发生。当我尝试用带有15个参数的VB.net程序或指定命名参数CorruptLoad的值打开同一个excel文件时,就没有问题了!
我正在使用powershell v 4.0,Office2010与SP2和.NET F
我正在将VB.Net程序转换为C#程序。编写VB.net代码的程序员离开了,所以我无法向他寻求帮助,而且我对VB.Net知之甚少。在他的计划中,他有以下几点:
public DataSet getData(string SQL)
{
'Some variable declarations
Dim ds As New DataSet
Try
'Some code
getData = ds 'This is the part of the code I am having trouble figuring out.
'some